C# 新窗口出现在主窗口下

C# 新窗口出现在主窗口下,c#,wpf,C#,Wpf,我正在使用WPF编写一个应用程序。我想这样一个动作:当我按下一个按钮上的鼠标按钮,另一个窗口出现,当我释放鼠标按钮的任何地方,这个窗口隐藏。这就是我目前的代码: XAML: 问题是新窗口(omww)出现在主窗口下,但我需要它在顶部。当我尝试其他事件时,如button.Click窗口显示在旧事件的上方,这让我感到困惑。但是,单击事件不符合我的需要。如果有人能帮助我,我将不胜感激。在我看来,您有两种可能的选择,可以使子窗口出现在父窗口的顶部。第一个是@Viv在评论中提到的,即将子窗口上的最顶层的属性

我正在使用WPF编写一个应用程序。我想这样一个动作:当我按下一个按钮上的鼠标按钮,另一个窗口出现,当我释放鼠标按钮的任何地方,这个窗口隐藏。这就是我目前的代码:

XAML:


问题是新窗口(omww)出现在主窗口下,但我需要它在顶部。当我尝试其他事件时,如button.Click窗口显示在旧事件的上方,这让我感到困惑。但是,单击事件不符合我的需要。如果有人能帮助我,我将不胜感激。

在我看来,您有两种可能的选择,可以使子
窗口出现在父
窗口的顶部。第一个是@Viv在评论中提到的,即将子
窗口上的
最顶层的
属性设置为

omww.Topmost = true;
第二个选项是将子
窗口
所有者
属性设置为父
窗口
(如果它们之间存在直接关系):


在我看来,有两个可能的选项可以使子
窗口出现在父
窗口的顶部。第一个是@Viv在评论中提到的,即将子
窗口上的
最顶层的
属性设置为

omww.Topmost = true;
第二个选项是将子
窗口
所有者
属性设置为父
窗口
(如果它们之间存在直接关系):


检查
ShowActivated
属性。或者调用
Activate
方法。或者不使用预览事件。下一个问题似乎是您显示wndow并立即隐藏它。为什么您需要两个窗口,通过您的问题用户将无法在window2(omww)上执行任何操作,因为一旦用户释放鼠标按钮,它将消失?@nit,正确,这就是我需要的。@RicoW使用
弹出窗口来显示您在
窗口中显示的内容
?如果您有另一个
窗口
,并将其激活/聚焦以使其位于前面,则很可能会立即触发第一个窗口上的
PreviewMouseUp
,因此您最终看到的只是闪烁。使用弹出窗口,您应该能够满足您的需求。@RicoW如果您想坚持您的想法,请尝试设置
omww.Topmost=true紧跟在
omww.Show()之后
在您的
PreviewMouseDown
Event中检查
ShowActivated
属性。或者调用
Activate
方法。或者不使用预览事件。下一个问题似乎是您显示wndow并立即隐藏它。为什么您需要两个窗口,通过您的问题用户将无法在window2(omww)上执行任何操作,因为一旦用户释放鼠标按钮,它将消失?@nit,正确,这就是我需要的。@RicoW使用
弹出窗口来显示您在
窗口中显示的内容
?如果您有另一个
窗口
,并将其激活/聚焦以使其位于前面,则很可能会立即触发第一个窗口上的
PreviewMouseUp
,因此您最终看到的只是闪烁。使用弹出窗口,您应该能够满足您的需求。@RicoW如果您想坚持您的想法,请尝试设置
omww.Topmost=true紧跟在
omww.Show()之后在您的
PreviewMouseDown
事件中
omww.Topmost = true;
omww.Owner = this; // if called from the parent Window code behind