WPF自定义一个MessageBox

WPF的MessageBox太丑了,自己定义了一个。

这是效果:

 

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 >

 CS:

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();
        }
    }
}

 

 

你可能感兴趣的:(message)