如何确定画布(具有一定宽度)的像素宽度?
我在AnimatedImage控件中有一个位图,我知道位图的宽度(以像素为单位),我想缩放位图,使其水平地适合画布.我怎样才能确定这个尺度?
注意:我不需要使用RenderTargetBitmap,因为位图已经加载.
在WPF中,单元与设备无关.计算单位实际像素大小的公式为:
每个WPF单位的像素数= ConstantWPFUnit size*monitor DPI;
元素大小(以像素为单位)=每个WPF单位的像素数*MyElement.ActualWidth
常量WPF单位大小为1/96.如果我没记错的话,监视器DPI可以作为从SystemInformation.GetPrimaryMonitor返回的类中的属性或类似的东西找到.
FrameworkElement的ActualWidth是与设备无关的单位,是布局发生后元素实际占用的宽度.只需将此属性乘以您在上面计算的每个WPF单位的像素,就可以得到答案.
我怀疑你做了很多手动编码.通过在所讨论的控件/画笔上设置属性,通常可以通过任何所需方式拉伸图像和其他视觉元素.您是否尝试为包含位图的元素创建HorizontalAlignment ="Stretch"和VerticalAlignment ="Center"?