如何创建一个根据窗口高度缩放且不受系统 dpi 缩放影响的 WPF 应用程序?

问题描述 投票:0回答:1

我正在使用 WPF 作为 UI 使用 C# 创建一个工业过程监视和控制应用程序。该应用程序全屏运行,并将部署在具有不同分辨率(1024x768、1920x1080 和 1920x1200)和 dpi 缩放设置(100%、125% 和 150%)的各种 Windows 计算机上。我一直在思考如何解决这个问题,到目前为止我已经决定了:

我将整个UI设计为1024x768,我将布局设计为在某些区域具有灵活的宽度,并且我根据高度缩放所有内容,忽略系统dpi缩放。

Viewboxes 似乎不起作用,因为它们完全破坏了布局。我也不确定是否需要对抗系统 dpi 设置,因为如果高度本身是以与设备无关的像素来测量的,那么在按高度缩放时我自然会得到相同的效果。

此外,对于我想要实现的目标,是否有更好的方法?无论分辨率或缩放比例如何,我都需要在屏幕上显示固定数量的信息。根据屏幕的宽高比创建不同的布局会非常酷,但目前可能太复杂了。

c# wpf
1个回答
0
投票

根据 Grid 布局重新思考您的 UI。将控件放在网格行和列中可以更轻松地针对不同的屏幕尺寸进行拉伸和收缩。

例如,您可以将导航按钮放在第一列(第 0 网格列)中,并且可以选择按整个屏幕的比例拉伸该列,或者甚至可以在该列缩小到内容大小以下时显示水平滚动条.

您可以灵活地缩放其中的内容,这也适用于本地化的字符串,这意味着如果将来某个时候您必须将所有内容翻译成日语,您的 UI 看起来仍然不错。

© www.soinside.com 2019 - 2024. All rights reserved.