首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在WPF中创建ChildWindow

在WPF中创建ChildWindow
EN

Stack Overflow用户
提问于 2015-03-23 04:32:26
回答 2查看 3.5K关注 0票数 1

我正在尝试使用WPF的对话服务创建一个模态窗口。我已经找到了这个例子,并且正在尝试创建和学习

Modal dialogs with MVVM

我想在WPF中创建一个ChildWindow。我已经添加了扩展的WPF工具包,并将其添加为参考。我不能理解的是,我是如何将整个窗口变成ChildWindow的。在下面的代码中,我可以将扩展工具包名称空间添加到窗口,但不能使整个窗口成为ChildWindow。如何制作ChildWindow?

代码语言:javascript
复制
<Window x:Class="ModalPopupWindows.ErrorWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:custom="http://schemas.xceed.com/wpf/xaml/toolkit"
    Title="ErrorWindow" Height="300" Width="300">   

    <custom:ChildWindow>

    </custom:ChildWindow>
</Window>
EN

回答 2

Stack Overflow用户

发布于 2015-03-23 08:48:43

没有真正的方法可以将窗口设置为“子窗口”,但您可以并且应该将新窗口设置为“所有者”。

代码语言:javascript
复制
        var win = new MainWindow();
        win.Owner = this;
        win.DataContext = this.DataContext;
        win.Closed += (() =>
        {
            //do this processing after window has been closed
        });
        win.ShowDialog(); //instead of ".Show();" this makes the window modal

AFAIK这是正确的方法。当然,您可以通过多种方式为关闭的事件添加处理程序,这只是一个示例。还要考虑设置你需要的datacontext --这个例子将父窗口的datacontext直接传递给子窗口的/modal。

票数 2
EN

Stack Overflow用户

发布于 2015-03-23 21:27:13

代码语言:javascript
复制
Try This one
<Grid>
<Button x:Name="btnclick" Click="Button_Click"/>
</Grid>

.cs页面

代码语言:javascript
复制
btnclick.Click +=new RoutedEventHandler(delegate(object sender, RoutedEventArgs e)
        {
            ChildWindow chldWindow = new ChildWindow();
            MessageBox.Show(chldWindow.Getmessage());
            chldWindow.ShowDialog();
        });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29199511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档