1

私は小さなビジュアルデザイナーを開発していて、要素にインデックスを付ける機能を実装する必要があります。すべての要素には、相互に依存する独自のレベルの可視性があります。メイン要素に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>

すべての地域をすべての主要な要素の上に置くにはどうすればよいですか?

ありがとうございました!

4

1 に答える 1

3

ZIndex は、兄弟 (同じコンテナーの子コントロール) の z オーダーを整理するためのインデックスです。

要素を「すべて」の上に置きたい場合は、すべての上にある新しいコンテナを追加する必要があります。このテンプレートなどの下位レベルからは指定できません。UI は階層のままです。私の知る限り、それを壊すことはできません。

于 2012-05-12T06:17:11.890 に答える