C# 图像上的画布-绘制控件的不同大小
我的XAML是:C# 图像上的画布-绘制控件的不同大小,c#,.net,wpf,image,canvas,C#,.net,Wpf,Image,Canvas,我的XAML是: <Grid Name="grid"> <Viewbox Name="viewBox" Grid.Column="0" Grid.Row="0"> <Grid> <Image Name="image" /> <Canvas Name="canvas" />
<Grid Name="grid">
<Viewbox Name="viewBox" Grid.Column="0" Grid.Row="0">
<Grid>
<Image Name="image" />
<Canvas Name="canvas" />
</Grid>
</Viewbox>
</Grid>
但椭圆在不同的图像上看起来是不同的。其大小取决于加载图像的大小。如果加载的图像具有较大的分辨率-椭圆较小。如果加载的图像分辨率很小-椭圆太大
如何绘制具有相同物理大小的椭圆
我尝试将SnapsToDevicePixels属性应用于ellipse控件,但对我无效。代码的问题是图像控件和内部网格始终获取加载图像的大小。然后,Viewbox将缩放所有内容以适应外部栅格(单元格)。显然,这也会按相同的比例因子缩放画布及其子元素。因此,在加载不同大小的图像时,可以观察到不同大小的椭圆 解决方案是不使用Viewbox。图像控件已缩放显示的图像,除非将其属性设置为
None
。因此,您根本不需要Viewbox。您应该通过设置图像控件的宽度
或高度
,或者两者都设置,为图像控件指定一个合适的大小
<Grid>
<Image Name="image" Width="120" />
<Canvas Name="canvas" />
</Grid>
<Grid>
<Image Name="image" Width="120" />
<Canvas Name="canvas" />
</Grid>