xaml:
<Window x:Class="AgileToDo.UMessageBox" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="UMessageBox" Height="130" Width="280" WindowStyle="None" Background="{x:Null}" ResizeMode="NoResize" x:Name="main" AllowsTransparency="True" WindowStartupLocation="CenterScreen"> <Window.Triggers> <EventTrigger RoutedEvent="Window.Loaded" > <BeginStoryboard> <Storyboard Name="sbOpShow"> <DoubleAnimation Storyboard.TargetName="main" Storyboard.TargetProperty="Opacity" From="0" To="0.8" Duration="0:0:0.15"/> </Storyboard> </BeginStoryboard> </EventTrigger> </Window.Triggers> <Window.Resources> </Window.Resources> <Border Background="#F03A3A3A" Opacity="1" CornerRadius="3"> <Canvas> <Border Canvas.Top="0" Height="25" Width="{Binding ElementName=main, Path=Width,UpdateSourceTrigger=PropertyChanged}" BorderThickness="0,0,0,1" BorderBrush="#FFEFE2E2"> <TextBlock x:Name="lblTitle" Text="test" HorizontalAlignment="Left" Foreground="#FFCBBEBE" FontSize="14" VerticalAlignment="Center" Margin="5"/> </Border> <TextBlock x:Name="lblMsg" Foreground="White" FontSize="14" TextWrapping="Wrap" Text="test" HorizontalAlignment="Center" Canvas.Left="20" Canvas.Top="50" /> <Border BorderBrush="#FF60C1C1" BorderThickness="0.5" Height="22" Canvas.Bottom="10" Canvas.Right="85" MouseLeftButtonDown="Yes_MouseLeftButtonDown" Name="border1" Width="49" Background="#FFC7C7C7" CornerRadius="2"> <TextBlock Text="YES" HorizontalAlignment="Center" VerticalAlignment="Center"/> </Border> <Border BorderBrush="#FF60C1C1" BorderThickness="0.5" Height="22" Canvas.Bottom="10" Canvas.Right="30" MouseLeftButtonDown="No_MouseLeftButtonDown" Name="border2" Width="49" CornerRadius="2" Background="#FFC7C7D1"> <TextBlock Text="NO" HorizontalAlignment="Center" VerticalAlignment="Center"/> </Border> </Canvas> </Border> </Window>
using System.Windows; using System.Windows.Input; using System.Windows.Media.Animation; namespace AgileToDo { /// <summary> /// UMessageBox.xaml 的交互逻辑 /// </summary> public partial class UMessageBox : Window { /// <summary> /// 禁止在外部实例化 /// </summary> private UMessageBox() { InitializeComponent(); } public new string Title { get { return this.lblTitle.Text; } set { this.lblTitle.Text = value; } } public string Message { get { return this.lblMsg.Text; } set { this.lblMsg.Text = value; } } /// <summary> /// 静态方法 模拟MESSAGEBOX.Show方法 /// </summary> /// <param name="title">标题</param> /// <param name="msg">消息</param> /// <returns></returns> public static bool? Show(string title,string msg) { var msgBox = new UMessageBox(); msgBox.Title = title; msgBox.Message = msg; return msgBox.ShowDialog(); } private void Yes_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { this.DialogResult = true; this.Close(); } private void No_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { this.DialogResult = false; this.Close(); } } }
调用:
if (UMessageBox.Show("提示", “消息") == true) { }
效果: