Ecco il codice del mio ItemsControl che ingrandisce gli elementi quando il mouse si sposta.
Non riesco ad aumentare lo ZIndex dell'attuale oggetto ingrandito per metterlo sopra gli altri.Modifica ZIndex di un oggetto in un ItemsControl
<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>
ho cercato di cambiare direttamente lo ZIndex nel trigger, ma non funziona.
Sembra che sia necessario modificare ZIndex in ContentPresenter che è il padre di TextBlock nel VisualTree e non direttamente in TextBlock.
<Setter Property="Panel.ZIndex" Value="99" />
Così ho provato a cambiare lo ZIndex nel ContentPresenter, ma ancora non funziona
<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>
Qualcuno sa come funziona?
Funziona bene per me, utilizzando una tela. Quindi hai ragionevolmente un altro problema. Che tipo di pannello usi? – dowhilefor
Uso un WrapPanel. Quale soluzione funziona per te? – Nicolas