これは、マウスが上に移動したときにアイテムをズームする ItemsControl のコードです。
現在ズームされているアイテムの ZIndex を増やして、他のアイテムの上に置くことができません。
<ItemsControl ItemsSource="{Binding Path=Value}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Name}"
RenderTransformOrigin="0.5 0.5">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="RenderTransform">
<Setter.Value>
<ScaleTransform ScaleX="1.5"
ScaleY="1.5" />
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
トリガーで ZIndex を直接変更しようとしましたが、うまくいきません。
TextBlock ではなく、VisualTree の TextBlock の親である ContentPresenter の ZIndex を変更する必要があるようです。
<Setter Property="Panel.ZIndex" Value="99" />
そのため、ContentPresenter で ZIndex を変更しようとしましたが、まだ機能しません。
<ItemsControl.ItemContainerStyle>
<Style TargetType="{x:Type ContentPresenter}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Panel.ZIndex" Value="99" />
</Trigger>
</Style.Triggers>
</Style>
</ItemsControl.ItemContainerStyle>
誰もそれがどのように機能するか知っていますか?