如何确定画布(具有一定宽度)的像素宽度?WPF - 以像素为单位的画布高度
我在AnimatedImage控件中有一个位图,并且我知道位图的像素宽度,我想缩放位图以便它完全水平地适合画布。我如何确定这个比例?
注意:我不需要使用RenderTargetBitmap,因为位图已经加载。
如何确定画布(具有一定宽度)的像素宽度?WPF - 以像素为单位的画布高度
我在AnimatedImage控件中有一个位图,并且我知道位图的像素宽度,我想缩放位图以便它完全水平地适合画布。我如何确定这个比例?
注意:我不需要使用RenderTargetBitmap,因为位图已经加载。
在WPF单元是独立于设备的。计算单位实际像素大小的公式为:
每个WPF单位的像素数= ConstantWPFUnit大小* monitor DPI;在每单位WPF像素=像素的元件的
大小* MyElement.ActualWidth
恒定WPF单元大小为1/96。如果我没有记错,可以从SystemInformation.GetPrimaryMonitor或类似的东西返回的类中找到显示器DPI。
FrameworkElement的ActualWidth是独立于设备的单位,是元素在布局发生后实际占用的宽度。只需将此属性乘以上面计算的每个WPF单元的像素数就可以得到答案。
但是我有一个怀疑,你做了很多手动编码。通常可以通过在控制/画笔上设置属性来实现以任何需要的方式拉伸图像和其他视觉元素。你是否尝试过为包含位图的元素制作HorizontalAlignment =“Stretch”和VerticalAlignment =“Center”?
你说得对,我正在解决这个问题,垂直+水平对齐做到了!非常感谢你! – melculetz 2009-03-04 17:08:10