如何根据分辨率调整控件大小?

2023-12-25

在 WinForms 应用程序中,处理调整控件大小以匹配基于屏幕分辨率以及最大化和调整窗口大小的最佳方法是什么。我有 3 列是这样设置的。每列中的标签文本框。您可以将其算作 6 列。我尝试过锚定到右侧,但问题是第 1 列中的文本框将与接下来的 2 列重叠。我也尝试过对接,但这似乎不起作用。有什么简单的方法可以做到这一点吗?


TL;DR:如果不手动编码调整大小逻辑,您就无法做到这一点。顺便说一句,您可能不应该尝试这样做。

据我所知,在传统的 WinForms 中,如果不推出您自​​己的解决方案,就没有自动的方法。Sean87 https://stackoverflow.com/users/658031/sean87 建议 https://stackoverflow.com/a/8523564/7290 the AutoScaleMode http://msdn.microsoft.com/en-us/library/system.windows.forms.containercontrol.autoscalemode.aspx属性,但虽然它是自动的,但它不支持按分辨率自动调整大小。它提供了一个基于 Windows 中的字体大小设置或 DPI 设置进行缩放的选项。当简单地更改屏幕分辨率时,这些都不会直接更改,而且老实说,大多数典型用户(甚至可能是高级用户)可能永远不会修改 DPI 或字体大小设置。

此外,从基本用户的角度来看,增加屏幕分辨率的重点是提供更多的虚拟桌面“空间”来放置应用程序窗口。确实,现在大多数显示器都是基于 LCD 的,因此具有原生分辨率 http://en.wikipedia.org/wiki/Native_resolution这使得改变这一点基本上已经成为 CRT 的过去了。但是,购买更大的新显示器的行为仍然会让典型用户增加虚拟屏幕空间,以便他们可以同时在屏幕上看到更多窗口。我认为,始终保持与屏幕分辨率相同的相对尺寸的应用程序是相当不常见的,并且违背了大多数用户的期望,甚至包括我们高级开发人员用户。

通常,您将对应用程序进行编码,以便在调整窗口大小时智能且有用地调整其内容,但通常您会听从用户的管理,因为这是他们的机器和他们的偏好(将其视为“我的房子,我的房子”)规则”原则)。这也是为什么大多数(所有?)应用程序不会更改窗口位置,除非由用户直接操作(通过拖动窗口框架等)。事实上,所有这些都可能解释了微软选择的原因not包括基于分辨率的任何自动调整大小规则。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据分辨率调整控件大小? 的相关文章

随机推荐

  • 沿着 d3 中的路径拖动

    使用 d3 和 React 我绘制了一条路径 在这条路径上 我有多个圆圈 只能沿着该路径拖动 然而 我当前的实现仅 在某种程度上 在该路径上有一个圆圈时才有效 在 DragStart 上 无论位置如何 它都会在路径上移动到长度 0 并且每当
  • 仅显示 x 轴图的第一个和最后一个刻度标签

    我正在解析日志文件并创建一个绘图 我不需要 X 轴上的所有标签 我只想显示第一个和最后一个或其中的几个 并带有特定的步骤 假设每 100 个 我怎样才能做到这一点 我只能显示第一个或最后一个 但不能同时显示两者 My code import
  • PHP 的日期和时间助手(如 Java 中的 Joda-Time)[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个类似的库 开源 乔达时间 http www joda org joda time 在Ja
  • 在 CMake 中混合 C 和 C++,什么是 CMakeCCompilerId.c 以及如何丢弃它

    我有一个混合 C 和 C 的简单项目 将 C 库包装到 C 类中并使其易于在 C 项目中使用 该项目是使用 VisualStudio 构建的 我在 Linux 或 Mac 下 所以我想将其转换为 CMake 项目 VS项目内容满满的
  • 在可扩展列表中以编程方式扩展组行

    我正在使用可扩展列表视图 当单击里面的图像时 我是否可以展开组行 我知道要让图像响应点击 我必须设置其焦点 现在 一旦此图像响应单击 在我的客户适配器内 我如何以编程方式展开 折叠它所属的特定组行 谢谢 在适配器中 private OnIt
  • Windows ssh - 如何在断开连接后保持进程运行

    我想通过 SSH PHP 脚本 启动 java 进程 Minecraft 服务器 并且在断开连接时不应将其关闭 我正在使用适用于 Windows 和 64 位 Java 的 Bitvise SSH 服务器 我可以启动服务器 但如果我与 ss
  • 如何在 Firefox Mobile (Fennec) 扩展的内容脚本中使用 jQuery?

    我正在开发 Firefox Mobile Fennec 扩展 我想在内容脚本中使用 jQuery 最好的方法是什么 我正在桌面版 Firefox Mobile 4 上进行测试 覆盖 js window addEventListener lo
  • 合并两个数组而不使用额外空间

    我有 2 个已排序的数组 a1 and a2 长度l1 and l2 分别 数组a2长度末尾有空格l1 所以它可以容纳所有元素a1除了它本身的元素之外 现在我想合并a1 into a2以便a2将包含以下所有元素a1 and a2按排序顺序
  • 命令行 Jasypt 客户端加密“无法操作”

    我正在使用 Jasypt 以非明文格式将数据库密码存储在休眠配置文件中 例如代替
  • C++ 模板和 ODR 规则

    为什么以下工作在C 我想ODR规则将出现在以下代码中 typedef char int8 class Sample public template
  • 当用户创建挂载点时如何收到通知?

    首先 这是限制 必须在XP上运行 必须通知驱动器盘符分配以及将卷安装到文件夹 如果驱动器正在睡眠 则不得 唤醒 该驱动器 我真的不想轮询驱动器 我尝试过的 Google 我查看了 WMI 和 Win32 LogicalDisk 类 我可以确
  • Linux 上的 Docker - 清空已安装的卷

    我正在尝试让我的 docker 设置在我的 Linux 机器上运行 它在 OSX 上运行良好 我一生都无法将卷正确安装到 Linux 机器上 我使用的是 Elementary OS 0 4 Loki 64 位 码头工人版本 Client V
  • 如何在 OpenCV 中校正裁剪后的立体图像?

    我有一对水平对齐的立体相机 它们是使用图像的全尺寸进行校准的 我通过调用 cv2 initUn DistorifyMap 来获取每个摄像机的地图进行纠正 然后调用 cv2 remap 使用全尺寸图像时 如下所示 map1 map2 cv2
  • 如何在select2框架中使用占位符作为默认值

    获得a的选定值select2我在用着 var x select select2 data var select choice x text 问题是 如果未选择值 则会引发错误 我想知道如果未选择任何选项 是否有任何方法使其返回占位符 您必须
  • 使用 Mathnet 数字库进行 Svd 重组似乎是错误的

    我正在寻找 Mathnet Iridium 和 Mathnet Numerics 之间的非回归 这是我的代码 使用 Mathnet Numerics double symJaggedArray new double 5 symJaggedA
  • Java方法性能中使用final关键字? [复制]

    这个问题在这里已经有答案了 是否使用final在方法参数中允许编译器或运行时环境更快地工作 例如 如果您有一个变量要传递给一个您知道不会被修改并按原样使用的方法 那么声明它是否更有效final 例子 第一种方法应该比第二种方法更快 publ
  • javascript 函数返回不起作用

    我在函数中返回变量时遇到问题 以下脚本工作正常 function sessionStatus document ready function getJSON scriptRoot sessionStatus php function sta
  • k8s - livenessProbe 与 readinessProbe

    考虑一个通过 http 端点进行健康检查设置的 pod health在端口 80 上 需要近 60 秒才能真正准备好并为流量提供服务 readinessProbe httpGet path health port 80 initialDel
  • Excel VBA - 日期格式自动更改

    我试图通过在 Sheets Sheet1 Cells 17 3 Value 中的日期添加一个月来输入日期值 该值是 01 10 2011 但格式为 Oct 11 然后返回 Sheets Sheet1 Cells 17 4 Value LDa
  • 如何根据分辨率调整控件大小?

    在 WinForms 应用程序中 处理调整控件大小以匹配基于屏幕分辨率以及最大化和调整窗口大小的最佳方法是什么 我有 3 列是这样设置的 每列中的标签文本框 您可以将其算作 6 列 我尝试过锚定到右侧 但问题是第 1 列中的文本框将与接下来