У меня проблема с холстом и нарисованными на нем прямоугольниками. Они получают события в обратном порядке создания (самые новые сверху), а не в порядке zindex...
У меня ItemsControl привязан к списку ресурсов.
Затем есть холст как панель элементов:
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas x:Name="BitmapCanvas"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
Все ресурсы связаны прямоугольниками:
<ItemsControl.ItemTemplate>
<DataTemplate DataType="interfaces:IResourceView">
<Rectangle ...>
и есть стиль:
<Rectangle.Style>
<Style TargetType="{x:Type Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsSelected}" Value="true">
<Setter Property="Canvas.ZIndex" Value="0"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=IsSelected}" Value="false">
<Setter Property="Canvas.ZIndex" Value="15"/>
</DataTrigger>
</Style.Triggers>
</Style>
...</Rectangle.Style></Rectangle></DataTemplate></ItemsControl.ItemTemplate>
Как видите, когда прямоугольник выделен, я устанавливаю его Zindex равным 0, а у других значение Zindex больше. Я пробовал это также с поменявшимися значениями, но все равно прямоугольники получают фокус таким же образом. У кого-нибудь есть идея, почему это происходит так?