WPF ZoomControl和装饰器
这是我关于堆栈溢出的第一篇文章,我希望我做对了。我正在使用WPF扩展的ZoomControl来显示支持平移和缩放的图像:WPF ZoomControl和装饰器,wpf,image,coordinates,zooming,Wpf,Image,Coordinates,Zooming,这是我关于堆栈溢出的第一篇文章,我希望我做对了。我正在使用WPF扩展的ZoomControl来显示支持平移和缩放的图像: <DockPanel Grid.Row="1" x:Name="canvas"> <Controls:ZoomControl x:Name="zoomControl"> <Canvas x:Name="canvas"> <Image x:Nam
<DockPanel Grid.Row="1" x:Name="canvas">
<Controls:ZoomControl x:Name="zoomControl">
<Canvas x:Name="canvas">
<Image x:Name="imageControl" Stretch="None" />
</Canvas>
</Controls:ZoomControl>
</DockPanel>
我想在用户基于某些图像处理加载的图像上的特定位置(像素坐标)添加矩形\装饰器
var r = new Rectangle();
r.StrokeThickness = 5;
r.Stroke = Brushes.Black;
r.Fill = Brushes.Transparent;
r.Width = width;
r.Height = height;
Canvas.SetLeft(r, y);
Canvas.SetTop(r, x);
canvas.Children.Add(r);
但是,矩形是否未放置在预期位置?错误的比例和位置
谢谢
John我认为问题在于画布正在扩展以填充空间,而不是锁定在矩形上。使用Snoop之类的工具查看一下,看看这两个工具的边界框是什么 您可以在画布上使用水平和垂直对齐来修复它,将它们设置为除“拉伸”之外的任何其他设置 如果这不起作用,就这样重组
<ZoomBox>
<Grid>
<Image/>
<Canvas/>
</Grid>
</ZoomBox>
因此,图像和画布按正在变换的父网格分组。矩形的“特定位置”是什么?矩形应该只是整个图像的边框吗?
<ZoomBox>
<Grid>
<Image/>
<Canvas/>
</Grid>
</ZoomBox>