Wpf 最顶层控制

Wpf 最顶层控制,wpf,Wpf,我有下面的UserControl <UserControl x:Class="MyControl"> <Canvas Background="Transparent"> <Line x:Name="line"/> <TextBlock x:Name="textBlock" Panel.ZIndex="99999999" /> <Polygon Name="arrow" "/>

我有下面的UserControl

<UserControl x:Class="MyControl">
    <Canvas Background="Transparent">
        <Line x:Name="line"/>
        <TextBlock x:Name="textBlock" Panel.ZIndex="99999999" />
        <Polygon Name="arrow" "/>
    </Canvas>
</UserControl>

a) 是的,不过将其设置为
1
通常就足够了

b) 不。

a)这很不干净,我建议您添加系统名称空间

xmlns:sys="clr-namespace:System;assembly=mscorlib"
设置如下:

Panel.ZIndex="{x:Static sys:Int32.MaxValue}"

b) 这应该不会有任何影响。

另一个选项就是更改节点中元素的顺序

<line/>

<arrow/>
<textBlock/>


如果您正在寻找一种方法来绘制箭头下方的文本块,但仍然可以获得所有用户输入,您可以尝试使用IshitteVisible标志。它使您添加到画布中的任何项目成为最上面的项目,您必须记住,
子集合有自己的顺序,而不仅仅是一个集合。如果要确保顺序独立于此,则需要将所有Z索引绑定到某个控制器类,该控制器类为您管理该顺序。