zoukankan      html  css  js  c++  java
  • 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)
                    {
                        
                    }

    效果:

  • 相关阅读:
    python基础一
    IO多路复用
    协程
    线程之互斥锁与递归锁、队列、线程池
    线程
    进程之间的通信与数据共享
    进程
    操作系统的简介
    PyCharm的基本使用指南
    【解决方案】明明安装了库,PyCharm还是提示:No module named bs4 / No module named 'requests'
  • 原文地址:https://www.cnblogs.com/fornet/p/3017499.html
Copyright © 2011-2022 走看看