【发布时间】:2026-01-07 00:25:01
【问题描述】:
我有一个主窗口
<Window >
<Canvas x:Name="topCanvas" Background="Black">
<Grid x:Name="mainGrid" Width="{Binding ElementName=topCanvas, Path=ActualWidth}" Height="{Binding ElementName=topCanvas, Path=ActualHeight}">
</Grid>
<Canvas
Width="{Binding ElementName=topCanvas, Path=ActualWidth}"
Height="{Binding ElementName=topCanvas, Path=ActualHeight}"
Name="MessageField" PreviewMouseMove="MessageField_PreviewMouseMove_1"
>
</Canvas>
</Canvas>
</Window>
mainGrid 用于承载其他控件。基本上它有一个选项卡控件,用于承载窗口以及选项卡项中的 wpf 控件。现在我想要一个弹出控件,当它出现时应该位于所有控件之上,wpf 以及 windows 控件。
现在我有一个可以用作弹出窗口的用户控件,但该控件的问题是,它没有出现在 Windows 控件的顶部。它位于 wpf 控件之上。
MoveableMessageBox userControl = new MoveableMessageBox();
System.Windows.Controls.Canvas.SetZIndex(userControl, (int)1);
MessageField.Children.Add(userControl);
请建议我怎样才能使这个控件也放在 windows 控件的顶部。
【问题讨论】:
-
可以加截图吗?
-
您是否考虑过从
Window而不是UserControl派生弹出窗口并将主窗口分配给其Owner属性? -
@daniele3004 请查找附件中的图片
-
您想使用自己制作的消息框吗?作为一个普通的消息框,但有你想要的内容。这是正确的? @维克拉姆
-
@daniele3004 - 是的,先生,但弹出窗口应该可以拖动到屏幕上