WPF - 画布高度(以像素为单位)

时间:2009-03-04 16:43:25

标签: wpf pixels

如何确定画布(具有一定宽度)的宽度(以像素为单位)?

我在AnimatedImage控件中有一个位图,我知道位图的宽度(以像素为单位),我想缩放位图,使其水平适合画布。我如何确定这种规模?

注意:我不需要使用RenderTargetBitmap,因为位图已经加载。

1 个答案:

答案 0 :(得分:13)

在WPF中,设备与设备无关。计算单位实际像素大小的公式为:

每个WPF单位的像素数= ConstantWPFUnit大小*监视DPI;

元素大小(以像素为单位)=每个WPF单位的像素数* MyElement.ActualWidth

常量WPF单位大小为1/96。如果我没记错的话,监视器DPI可以作为从SystemInformation.GetPrimaryMonitor返回的类中的属性或类似的东西找到。

FrameworkElement的ActualWidth是与设备无关的单位,是布局发生后元素实际占用的宽度。只需将此属性乘以您在上面计算的每个WPF单位的像素,就可以得到答案。

我怀疑你做了很多手动编码。通过在所讨论的控件/画笔上设置属性,通常可以通过任何所需方式拉伸图像和其他视觉元素。您是否尝试为包含位图的元素创建Horizo​​ntalAlignment =“Stretch”和VerticalAlignment =“Center”?