2009-03-04 61 views
3

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

我在AnimatedImage控件中有一个位图,并且我知道位图的像素宽度,我想缩放位图以便它完全水平地适合画布。我如何确定这个比例?

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

回答

13

在WPF单元是独立于设备的。计算单位实际像素大小的公式为:

每个WPF单位的像素数= ConstantWPFUnit大小* monitor DPI;在每单位WPF像素=像素的元件的

大小* MyElement.ActualWidth

恒定WPF单元大小为1/96。如果我没有记错,可以从SystemInformation.GetPrimaryMonitor或类似的东西返回的类中找到显示器DPI。

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

但是我有一个怀疑,你做了很多手动编码。通常可以通过在控制/画笔上设置属性来实现以任何需要的方式拉伸图像和其他视觉元素。你是否尝试过为包含位图的元素制作Horizo​​ntalAlignment =“Stretch”和VerticalAlignment =“Center”?

+0

你说得对,我正在解决这个问题,垂直+水平对齐做到了!非常感谢你! – melculetz 2009-03-04 17:08:10

相关问题