我的画布和画在上面的矩形有问题。他们以相反的创建顺序获取事件(最新的在顶部),而不是 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 值更大。我也在尝试使用交换值,但矩形仍然以同样的方式获得焦点。有人知道为什么会这样吗?