首页 > 解决方案 > 如何确定以缇为单位的控件大小?

问题描述

我正在 MS Visual Studio 2019(社区版)中开发 VB.net 应用程序,在该应用程序中,我以编程方式将剪贴板中的图像粘贴到 Richtextbox 中。

我需要添加一个选项来强制该图像完全填充控件的可见区域。

检查粘贴图像产生的富文本,然后在我手动拖动图像以调整其大小以填充控件后再次检查,看起来我需要做的就是将图像的 picwgoal 和 pichgoal rtf 标签更改为控件的维度。

问题是 picwgoal 和 pichgoal 以缇为单位。

所以我的问题是:是否有一种可靠的方法可以根据控件的像素宽度和高度动态计算控件的尺寸(以缇为单位),以便当应用程序以各种分辨率/缩放运行时它可以工作?

我了解 TwipsPerPixelX 方法已过时且与 64 位进程不兼容。

提前致谢。

标签: vb.netdata-conversionrichtext

解决方案


..认为我自己解决了

..认为我自己解决了

假设一个点总是 1/72 英寸,一个点是 20 缇。

Dim g = Me.CreateGraphics()
Dim RTBxTwips = (RTB.Width * 72 / g.DpiX) * 20
Dim RTByTwips = (RTB.Height * 72 / g.DpiY) * 20
g.Dispose()

..似乎给出的结果等于调整到控件可见区域的图像的 picwgoal 和 pichgoal 标记


推荐阅读