C# 子元素的WPF Panel.ZIndex
我正在开发一个小型的可视化设计器,我需要实现一个索引元素的功能。所有图元都有自己的可见性级别,并且相互依赖。我没有对主要元素使用ZIndex,所以它们在可视化树中的显示方式是一样的。但所有处于设置索引模式的元素都有一个带有索引号的区域。问题是这些区域继承了它们父母的zindex。我试图为这些区域设置zindex=1000,但没有帮助C# 子元素的WPF Panel.ZIndex,c#,.net,wpf,C#,.net,Wpf,我正在开发一个小型的可视化设计器,我需要实现一个索引元素的功能。所有图元都有自己的可见性级别,并且相互依赖。我没有对主要元素使用ZIndex,所以它们在可视化树中的显示方式是一样的。但所有处于设置索引模式的元素都有一个带有索引号的区域。问题是这些区域继承了它们父母的zindex。我试图为这些区域设置zindex=1000,但没有帮助 <ControlTemplate x:Key="IndexRegion" TargetType="ContentControl"> &l
<ControlTemplate x:Key="IndexRegion" TargetType="ContentControl">
<Border>
<StackPanel Orientation="Horizontal">
<!--<TextBlock Text="Индекс: "></TextBlock>-->
<TextBlock Text="{Binding TabIndex}"></TextBlock>
</StackPanel>
</Border>
</ControlTemplate>
<Style x:Key="IndexRegionStyle" TargetType="ContentControl">
<Setter Property="HorizontalAlignment" Value="Left"></Setter>
<Setter Property="Margin" Value="1 -15 0 0"></Setter>
<Setter Property="Visibility" Value="{Binding IsTabIndexVisible, Mode=OneWay, Converter={StaticResource VisibilityOfBool}}"></Setter>
<Setter Property="Panel.ZIndex" Value="1000"></Setter>
</Style>
<DataTemplate DataType="{x:Type viewModel:WizardFormTextFieldViewModel}">
<wfSurface:DesignSurfaceItemContainer Width="{Binding Width}" Height="{Binding Height}" ClipToBounds="False">
<Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<ContentControl Style="{StaticResource IndexRegionStyle}" Template="{StaticResource IndexRegion}">
</ContentControl> --- this is an index region
<Border Style="{StaticResource WrongElement}">
<Border Style="{StaticResource TextFieldStyle}">
</Border>
</Border>
</Grid>
</wfSurface:DesignSurfaceItemContainer>
</DataTemplate>
---这是一个索引区域
如何使所有区域位于所有主要元素之上
谢谢大家! ZIndex是一个索引,用于组织同级(同一容器的子控件)的z顺序
如果希望元素位于“所有内容”之上,则需要添加一个位于所有内容之上的新容器。不能从较低级别(如此模板)指定此项。UI仍然是一个层次结构,据我所知,您无法打破它。请组织代码。你可以在开始的时候按4格,这是非常令人失望的,我考虑过,但我试着保持希望,因为这会使解决方案变得更重(解决方案会有所不同,但不会太重。只需添加一个顶部网格/画布,并向其中添加由对象层次结构中较低的项绑定的子项。这仅仅是可视化树结构与对象结构不同的结果。谢谢,但不幸的是,这对我没有帮助,因为我有一个可以包含其他元素,因此层次结构可能非常深,而某些元素可能不可见,因为它们没有放置在容器元素的可见边界上,所以这让我意识到元素是否可见。我想我将为每个容器元素使用装饰器功能来解决此问题。每个容器元素将绘制选项卡Index用于其装饰层上的元素。创建对象层次结构时,可以将可视化树的元素绑定到层次结构中的任何对象/属性。可以将可见性属性添加到对象,并在可视化树的多个级别上绑定到该属性。是的,但我相信这比使用装饰功能更困难e、 因为如果我们使用装饰器功能,我们不必知道某个元素是否可见。第二个原因是,我们必须对不在全局级别的每个元素进行x,y坐标变换,因为它们的x,y取决于容器元素的左上角。我们不必使用装饰器ei进行此计算疗法。