我正在开发一个小型的可视化设计器,我需要实现索引元素的功能。所有元素都有自己的可见性水平相互依赖。我没有将ZIndex用于主要元素,因此它们在可视树中显示。但是当它们处于设置索引模式时,所有元素都有一个带索引号的区域。问题是这些地区继承了父母的zindex。我试图为这些区域设置zindex = 1000,但它没有帮助。
<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>
如何让所有区域都超越所有主要元素?
谢谢!
答案 0 :(得分:3)
ZIndex是组织兄弟姐妹的z顺序的索引(同一容器的子控件)
如果您希望元素位于“所有内容”之上,则需要添加一个位于所有内容之上的新容器。您无法从较低级别(例如此模板)指定此项。用户界面仍然是一个层次结构,据我所知,你无法打破它。