【问题标题】:wpf - window freezeswpf - 窗口冻结
【发布时间】:2013-07-19 23:07:39
【问题描述】:

当我点击一个按钮打开一个窗口时,父窗口冻结。如果我再次最小化和最大化父窗口,它会再次正常工作。

系统配置

  • Windows 7、64 位操作系统。
  • .Net 框架 3.5 SP1
  • Visual Studio Express 2008

以下是我可以重现此问题的简单应用程序。

Window1.xaml

<Window x:Class="WpfApplication1.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="Window1" Height="300" Width="300">
  <StackPanel>
    <TextBox Width="200"/>
    <Button Content="click" Click="Button_Click"/>
  </StackPanel>
</Window>

Window1.xaml.cs

namespace WpfApplication1 {
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window {
    public Window1() {
        InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e) {
        (new Window2()).ShowDialog();
    }
}
}

Window2.xaml

<Window x:Class="WpfApplication1.Window2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window2" Height="300" Width="300" WindowStyle="ToolWindow">
<Grid>

</Grid>
</Window>

如果我删除 WindowStyle="ToolWindow" 效果很好 !!!!!!

App.xaml

<Application x:Class="WpfApplication1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Window1.xaml">
<Application.Resources>

</Application.Resources>
</Application>

【问题讨论】:

    标签: wpf xaml window


    【解决方案1】:

    ShowDialog() 的调用正在阻塞您的GUI 线程。

    有关不阻塞主线程的替代方法,请参阅this question

    【讨论】:

      【解决方案2】:

      使用Show 而不是ShowDialog,后者在模态模式下打开一个窗口

      【讨论】:

        【解决方案3】:

        如果您使用 ShowDialog(),请尝试将 Window1 设置为 Window2 的所有者:

                Window2 w = new Window2 { Owner = this };
                w.ShowDialog();
        

        【讨论】:

          【解决方案4】:

          显示而不是显示对话框将起作用,但也许您的意图更像是一个子窗口,请参阅http://wpftoolkit.codeplex.com/wikipage?title=ChildWindow&referringTitle=Home 了解详细信息。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2023-04-08
            • 1970-01-01
            • 2020-05-25
            • 2013-01-07
            • 1970-01-01
            • 1970-01-01
            • 2018-02-25
            相关资源
            最近更新 更多