代码如下:
using System; using System.Windows; using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Media; using System.Windows.Threading; namespace Yuzifu.Tools { public sealed class MessagePopup { public static void Show(UIElement parent, string message) { parent.Dispatcher.Invoke(DispatcherPriority.Background, new Action(() => { Popup popup = new Popup(); popup.StaysOpen = true; popup.PlacementTarget = parent; popup.Placement = PlacementMode.Center; Border aroundBorder = new Border(); aroundBorder.BorderThickness = new Thickness(2); aroundBorder.BorderBrush = Brushes.SteelBlue; StackPanel aroundStackPanel = new StackPanel(); aroundStackPanel.MinWidth = 320; aroundStackPanel.MinHeight = 120; aroundStackPanel.MaxWidth = 480; aroundStackPanel.Background = Brushes.White; aroundStackPanel.Orientation = Orientation.Vertical; aroundStackPanel.FlowDirection = FlowDirection.LeftToRight; DockPanel headDockPanel = new DockPanel(); headDockPanel.VerticalAlignment = VerticalAlignment.Top; headDockPanel.Background = Brushes.SteelBlue; TextBlock headTextBlock = new TextBlock(); headTextBlock.Margin = new Thickness(10, 0, 0, 0); headTextBlock.Text = "提示"; headTextBlock.Height = 26; headTextBlock.HorizontalAlignment = HorizontalAlignment.Left; headTextBlock.VerticalAlignment = VerticalAlignment.Center; headTextBlock.FontSize = 16; headTextBlock.Focusable = false; headTextBlock.IsHitTestVisible = false; headTextBlock.Background = Brushes.SteelBlue; headTextBlock.Foreground = Brushes.White; TextBlock messageTextBlock = new TextBlock(); messageTextBlock.Text = message; messageTextBlock.Margin = new Thickness(20, 20, 20, 10); messageTextBlock.MinHeight = 28; messageTextBlock.VerticalAlignment = VerticalAlignment.Top; messageTextBlock.HorizontalAlignment = HorizontalAlignment.Left; messageTextBlock.TextWrapping = TextWrapping.Wrap; Button okButton = new Button(); okButton.Content = "OK"; okButton.Margin = new Thickness(0, 0, 20, 10); okButton.Padding = new Thickness(25, 3,25,3); okButton.HorizontalAlignment = HorizontalAlignment.Right; okButton.Click += delegate { popup.IsOpen = false; parent.IsEnabled = true; }; headDockPanel.Children.Add(headTextBlock); aroundStackPanel.Children.Add(headDockPanel); aroundStackPanel.Children.Add(messageTextBlock); aroundStackPanel.Children.Add(okButton); aroundBorder.Child = aroundStackPanel; popup.Child = aroundBorder; parent.IsEnabled = false; popup.IsOpen = true; })); } } }
使用方法:
MessagePopup.Show(this,”显示文字”);
显示效果如下: