gpt4 book ai didi

wpf - Window.Show() 显示新窗口然后消失在主窗口后面

转载 作者:行者123 更新时间:2023-12-05 01:32:32 25 4
gpt4 key购买 nike

我正在开发一个 Prism 应用程序,我需要在新窗口中发布 View 模型。为此,我创建了一个专门用于发布这些 View 模型的服务。我这样调用它:

windowService.Publish(myViewModel);

Publish 方法的主体是这样的:

public void Publish(FloatingViewModel viewModel)
{
var floatingWindow = ServiceLocator.Current.GetInstance<FloatingWindow>();

floatingWindow.DataContext = viewModel;
floatingWindow.Show();
}

执行 Show() 方法后,新窗口迅速出现在我的主窗口上方,然后消失在我的主窗口后面,就像它收回了焦点一样。

有人知道这种行为从何而来吗?

最佳答案

我终于找到了问题所在,它实际上比我想象的要深得多。 这个答案与所描述的问题无关,因为根本原因完全不同。

在窗口中发布 View 模型的代码实际上嵌套在 WPF 命令中,并且该命令通过 InvokeCommandAction 附加到 MouseDoubleClick 事件。我发现,即使您将事件绑定(bind)到命令,该事件也不会标记为已处理,因此会一直传播到它被处理为止。这导致我的主窗口收回焦点。

关于wpf - Window.Show() 显示新窗口然后消失在主窗口后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7571800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com