我有一个用户可以缩放/滚动的图像。
我想在不同的图层上画一些长方形/圆(例如:为图片中标识的每个人的脸画一个圆)。
矩形位置相对于图像。
如何创建这样的覆盖?
最佳答案
我也做了类似的事情:
将图像设置为背景
在上面放一个透明的
将ItemsControl
设置为ItemsControl.ItemsPanel
为拖动操作编写处理程序
代码段:
<ItemsControl x:Name="overlayItemsControl"
Background="Transparent"
ItemsSource="{Binding Path=Blocks}"
Width="{Binding ElementName=imageControl, Path=Width}"
Height="{Binding ElementName=imageControl, Path=Height}"
ItemContainerStyle="{StaticResource rectStyle}"
PreviewMouseMove="ItemsControl_PreviewMouseMove"
PreviewMouseDown="ItemsControl_PreviewMouseDown"
PreviewMouseUp="ItemsControl_PreviewMouseUp"
PreviewKeyDown="ItemsControl_PreviewKeyDown">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas IsItemsHost="True" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
....
</ItemsControl>