【发布时间】:2016-06-03 15:25:16
【问题描述】:
我想开发一种使用 WPF 的矢量图像编辑器。 具有相同形式的每个形状都放置在 ItemsControl 中。 至少有 4 种形状(线、矩形、位图等)。 问题是:
我无法单击另一层下方的形状。
要求:
- ItemsControl ItemsPanelTemplate 必须是 Canvas,大小不能为 0。
- 每个形状都可以随时点击,无需在可点击形状上激活 IsHitTestVisible。
问题:
如何在上方的 ItemsControl 中启用单击其他形状下方的形状?
编辑 1: 添加代码sn-p
<Grid>
<!--Array of Ellipses-->
<ItemsControl ItemsSource="{Binding EllipseSource}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Left" Value="{Binding Path=Distance}" />
<Setter Property="Canvas.Width" Value="10" />
<Setter Property="Canvas.Top" Value="{Binding Path=Top}" />
<Setter Property="Canvas.Height" Value="10" />
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<Ellipse MouseDown="EllipseOnMouseDown" />
</ItemsControl.ItemTemplate>
</ItemsControl>
<!--Array of Rectangles-->
<ItemsControl ItemsSource="{Binding RectangleSource}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Left" Value="{Binding Path=Distance}" />
<Setter Property="Canvas.Width" Value="10" />
<Setter Property="Canvas.Top" Value="{Binding Path=Top}" />
<Setter Property="Canvas.Height" Value="10" />
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<Rectangle MouseDown="RectangleOnMouseDown" />
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
【问题讨论】: