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>
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)
                {
                    
                }

效果:

WPF自定义一个MessageBox介绍

你可能感兴趣的:(message)