zoukankan      html  css  js  c++  java
  • wpf遮罩~~~(搬运过来的)

    方便自己以后用,原文:https://blog.csdn.net/lwwl12/article/details/78472235

    直接上代码

    public partial class BaseWindow : Window
        {
            public BaseWindow() : base()
            {
                this.Closed += Window_Closed;
                this.WindowStartupLocation = WindowStartupLocation.CenterOwner;
                this.ResizeMode = ResizeMode.NoResize;
            }
    
            public void SyncComplete()
            {
                this.Dispatcher.Invoke(() =>
                {
                    MessageBox.Show(this, "操作完成!", "提示");
                });
            }
    
            private void Window_Closed(object sender, EventArgs e)
            {
                //容器Grid
                Grid grid = this.Owner.Content as Grid;
                //父级窗体原来的内容
                UIElement original = VisualTreeHelper.GetChild(grid, 0) as UIElement;
                //将父级窗体原来的内容在容器Grid中移除
                grid.Children.Remove(original);
                //赋给父级窗体
                this.Owner.Content = original;
            }
    
            public bool? ShowDialog(Window owner)
            {
                //蒙板
                Grid layer = new Grid() { Background = new SolidColorBrush(Color.FromArgb(128, 0, 0, 0)) };
                //父级窗体原来的内容
                UIElement original = owner.Content as UIElement;
                owner.Content = null;
                //容器Grid
                Grid container = new Grid();
                container.Children.Add(original);//放入原来的内容
                container.Children.Add(layer);//在上面放一层蒙板
                                              //将装有原来内容和蒙板的容器赋给父级窗体
                owner.Content = container;
                this.Owner = owner;
                return this.ShowDialog();
            }
        }

    xaml

    <local:BaseWindow x:Class="Modules.wnd_TimeSync"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:Modules"
            mc:Ignorable="d" WindowStyle="None" AllowsTransparency="True" Background="Transparent"
            Title="wnd_TimeSync" Height="20" Width="220" Closed="Window_Closed" >
        <StackPanel>
            <ProgressBar Name="pb" Height="20" Width="200" Maximum="100"></ProgressBar>
        </StackPanel>
    </local:BaseWindow>

    使用方法

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Shapes;
    
    namespace Modules
    {
        /// <summary>
        /// wnd_TimeSync.xaml 的交互逻辑
        /// </summary>
        public partial class wnd_TimeSync : BaseWindow
        {
            public wnd_TimeSync()
            {
                InitializeComponent();
            }
    
            public static void ShowDialog(Window owner)
            {
                //弹出消息框
                wnd_TimeSync box = new wnd_TimeSync();
                box.ShowDialog(owner);
            }
        }
    }
  • 相关阅读:
    域对象
    会话
    http请求
    ServletContext对象的应用
    配置一个servlet程序
    合并两个有序数组
    删除排列数组中的重复项
    移除元素
    搜索插入位置
    九九乘法表
  • 原文地址:https://www.cnblogs.com/wuyaxiansheng/p/11865289.html
Copyright © 2011-2022 走看看