WPF 自定义DialogWindow弹出方式

 

image

软件中经常有各种弹出框,各式各样,各种提示框,每个都做一个window又感觉不好,今天就封装一下它。实现功能是:只要继承自contentControl的类,都能new Content().ShowDialog();这样弹出。

本次仅为了实现功能,做了个demo,未优化样式,勿喷哦。

主要思路就是做一个dialog内容的容器,后面再定义各样弹框,只需要写内容就可以了。使用起来比较方便。

下面直接看代码:

新建一个DialogWindow窗口,容纳所有弹出的内容:

<Window x:Class="WpfDemo.DialogWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:ctl="clr-namespace:wpfDemo"
        Height="360.1" Width="505"
        Title="DialogWindow"
        SizeToContent="WidthAndHeight"
        >
    <ContentControl Content="{Binding Content}"/>
</Window>
public partial class DialogWindow : Window
    {
        private DialogWindowViewModel model;

        public DialogWindowViewModel Model
        {
            get { return model; }
            set { model = value;
                this.DataContext = model;
            }
        }

        public DialogWindow()
        {
            InitializeComponent();
        }
    }

再看DialogWindowViewModel:

image

基础好了,我们再建一个弹出内容的基类:

image

 

然后,只要定义UserControl,就能弹出:

示例:

image

image

 

这样一来,我们调用

new DialogTest().ShowDialog();即可见下面的窗口

image

窗口是DialogWindow,内容是DialogTest

再建别的窗口,方式也是一样。

更多功能,如自定义dialogWindow的Title等,都可以在DialogWindowViewModel内定义属性,绑定后即可。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情

    暂无评论内容