我的 XAML 是:
<Grid Name="grid">
<Viewbox Name="viewBox" Grid.Column="0" Grid.Row="0">
<Grid>
<Image Name="image" />
<Canvas Name="canvas" />
</Grid>
</Viewbox>
</Grid>
如您所见,我在 Grid 中有 Canvas 和 Image 控件来执行对 Image 的绘图。
我正在加载的所有图像都具有相同的 dpi - 72。
加载图像后,我获取一些数据并执行绘图:
var ellipse = new Ellipse
{
Width = 100,
Height = 100,
Cursor = Cursors.Hand,
Fill = new SolidColorBrush(Colors.Green),
Stroke = new SolidColorBrush(Colors.Black),
StrokeThickness = 1
};
canvas.Children.Add(ellipse);
Canvas.SetLeft(ellipse, 10);
Canvas.SetTop(ellipse, 10);
但似乎椭圆在不同图像上看起来不同。它的大小取决于加载图像的大小。如果加载的图像具有较大的分辨率 - 椭圆很小。如果加载的图像分辨率小 - 椭圆太大。
如何绘制具有相同物理尺寸的椭圆?
我试图在椭圆控件上应用 SnapsToDevicePixels 属性,但它对我不起作用。