gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 22:17:40 25 4
gpt4 key购买 nike

如何确定 Canvas (具有一定宽度)的像素宽度?

我在 AnimatedImage 控件中有一个位图,并且我知道位图的宽度(以像素为单位),并且我想缩放位图以使其水平完全适合 Canvas 。我如何确定这个比例?

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

最佳答案

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

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

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

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

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

但是,我怀疑您进行了很多手动编码。以任何所需的方式拉伸(stretch)图像和其他视觉元素通常可以通过在相关控件/画笔上设置属性来完成。您是否尝试过为包含位图的元素制作 Horizo​​ntalAlignment="Stretch"和 VerticalAlignment="Center"?

关于WPF - Canvas 高度(以像素为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/611427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com