字体大小独立的 UI:当我切换到 120 DPI 时一切都崩溃了?

2023-11-23

因此,我正在阅读有人在另一个问题中链接到的 Windows Vista UI 指南,他们提到您应该能够在切换到 120 DPI 后继续生存。好吧,我启动了安装了应用程序的便捷虚拟机,然后我们得到了什么……啊啊啊!!!大规模用户界面失败!

一切都杂乱无章:有些容器不够大,无法容纳文本;有些容器不够大,无法容纳文本。一些“彼此相邻”的控件现在全部压在一起/分散开;有些按钮不够高;我的ListView列不够宽...哎呀。

听起来似乎需要采取一种完全不同的方法。我的上一个基本上是使用 VS2008 Windows 窗体设计器来创建(我猜)基于像素的布局。我可以看到,如果我坚持使用 Windows 窗体,FlowLayoutPanel尽管我过去发现它们相当不灵活,但它会很有帮助。它们也不能解决容器(例如表单本身)不够大的问题;想必有办法做到这一点?也许是这样AutoSize财产?

这也可能表明是时候转向 WPF 了;我的印象是它是专门为这种事情设计的。

基本问题似乎可以归结为以下几点:

  • 如果我坚持使用 Windows 窗体,那么实现与字体大小无关的布局的所有技巧是什么,该布局可以在用户将字体设置为大或将显示设置为 120 DPI 时继续存在?
  • WPF 在这方面是否具有显着优势?如果是,您能否尝试让我相信它值得进行切换?
  • 无论是在 .NET 堆栈中还是一般情况下,与字体大小无关的布局是否有任何通用的“最佳实践”?

了解如何Anchor and Dock属性在您的控件上起作用,保留任何可以AutoSize本身,并使用TableLayoutPanel当你可以的时候。

如果您完成这三件事,您将获得大量 Windows 窗体中的 WPF 设计经验。一个精心设计的TableLayoutPanel将尽力调整控件的大小,以便它们正确适合表单。结合AutoSize控制、对接和自动缩放模式Soeren Kuklau 提到,你应该能够制作出具有良好扩展性的东西。如果没有,您的表单可能有太多控件;考虑将其拆分为选项卡页、浮动工具箱或其他空间。

在 WPF 中,这要容易得多,因为自动调整大小控件的概念是内置的;在大多数情况下,如果您使用坐标对放置 WPF 元素,那么您的做法是错误的。不过,您无法改变这样一个事实:在较低分辨率下,不需要太多 120 dpi 文本即可填满屏幕。有时问题不在于您的布局,而在于试图在狭小的空间中放置过多的东西。

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

字体大小独立的 UI:当我切换到 120 DPI 时一切都崩溃了? 的相关文章

  • 外部组件中的控制器上的 404

    我在解决 Asp Net MVC 4 项目中的 404 响应时遇到问题 它是在 VS2012 中构建的 目标版本为 4 5 我已将预编译的视图和控制器内置到独立的 DLL 中 我能够动态加载 DLL 并从我的核心项目中检查它们 甚至调用它们
  • 如何定义 Swagger UI 参数的默认值?

    我已将 Swagger Swashbuckle 集成到 NET Core 2 2 API 项目中 一切都很好 我的要求纯粹是为了方便 考虑以下 API 方法 public Model SomeEstimate SomeRequest req
  • 可选参数代码在 .NET 3.5 中编译。为什么?

    这段代码在 VS 2010 的框架 3 5 项目中编译正常 我三次检查过 public LoggingClient string uri net msmq localhost logging 为什么 我在 C 4 规范中没有看到任何内容 文
  • WCF 中的 Web 服务发现:Ws-Discovery 还是 UDDI?

    我知道 UDDI 和 Ws Discovery 熟知搜索服务与广播的位置 之间的区别 但我的问题是 在 WCF 中发现 Web 服务的最简单方法是什么 最简单的意思是 WCF 中已经实现了哪些内容并且现在可以使用 我还没有在 WCF 中看到
  • 绑定到 ObservableCollection 的 ContextMenu 不刷新数据

    给出以下 XAML 片段
  • 我可以将 XAML/WPF 窗口复制到第二个窗口中,例如画中画电视吗?

    我有一个带有两个 XAML WPF 窗口 派生自 NavigationWindow 的应用程序 每个窗口都包含一个父 UserControl 其中放置了所有子控件 在其中一个窗口中 我想以画中画电视的方式显示第二个窗口的内容 实际上只是父
  • 创建序列的幂集

    我正在尝试创建一个程序 作为创建序列 字符串或数字的可能组合的基础 这是某种加密 解密程序 我正在使用 Visual Studio 2013 和 C 我想做的是从序列中生成幂集 但我有点困惑并且无法继续进行 这是代码 public stat
  • 当没有实现 INotifyPropertyChanged 的​​对象时如何更新绑定。 WPF

    我有一个ViewModel它继承自BindableBase类 它是 Prism 中的一个类 它实现了INotifyPropertyChanged public class MyViewModel BindableBase 我有一个使用的属性
  • WPF 每次打开和关闭窗口时都会增加内存

    我已经做了非常简单的测试 只是为了了解 wpf 如何与内存一起工作 我用一个窗口创建一个项目 其中有一个Button 第二个窗口完全是空的 当我按下Button单击打开第二个窗口 窗口 1 后面的代码
  • 强制发送带有请求的根 CA

    我们有第三方 API 提供商提供 SOAP API 他们提供了3个证书 客户证书 中级证书 根证书 所有证书均在本地安装 他们提供了带有密码的 pfx 证书 我们已经在 SOAP UI 工具中上传了这个 pfx 并运行了一个请求 它起作用了
  • 使用.NET代码将系统时间同步到域控制器

    我要运行基于时间的测试 需要在测试期间多次更改系统时间 我希望能够在测试结束时将时间重新同步到域控制器时间 我有任何方法可以使用 NET 代码 C 来做到这一点 我正在使用以下位置的 p invoke 函数更改时间 使用 C 以编程方式设置
  • 强制关闭代码中所有打开的弹出窗口

    我想让所有打开的弹出窗口 StaysOpen false 从代码中关闭 基本上我想从代码中模拟用户单击鼠标 这将关闭弹出窗口 我不需要实际模拟点击 我只需要结果行为 我想过只浏览视觉树寻找弹出窗口并关闭每个弹出窗口 但这似乎不是最干净的方法
  • Spring.Net可以起到PostSharp的作用吗?

    几个月前 我发现了 PostSharp 有一段时间 它非常棒 但随后法律部门回复说他们不喜欢旧版本的许可证 然后部门告诉我2 0的价格高得令人无法接受 对于我们需要的座位数量 我非常失望 但并不沮丧 我想 这不可能是唯一的这样的框架 我一直
  • 在 Windows 上使用的 Subversion Server

    哪种 Subversion SVN Server 会建议新手开始使用 Windows Server 操作系统 我想我将在客户端上使用 TortoiseSVN 并且主要进行 NET 开发 UPDATE 很好的建议 我根据投票选择我的答案 我会
  • Windows 窗体和 XNA - 绘制不是实时的

    我目前正在为 XNA 开发一个关卡编辑器 它是通过结合 Windows 窗体和 XNA 构建的 我正在使用 App Hub 上示例中的内容链接文本 http create msdn com en US education catalog s
  • 在 Windows XP 中,SqlCe 在受限用户帐户下打开缓慢

    我有一个使用 NET 4 0 构建的 Windows 应用程序 它的program files目录下有一个SqlCe数据库 C Program Files 公司名称 应用程序名称 Data Data sdf 该应用程序与 Inno Setu
  • TextView 中缩进项目符号列表

    我有一个 TextView 我用 strings xml 中的字符串资源中的文本填充它 字符串资源包含 元素 用于在 TextView 内创建项目符号列表 我的问题是我想控制项目符号列表中跨越多行的行的缩进 默认情况下 文本不会缩进超过项目
  • 使用 POST 的 HttpWebRequest 的性能

    我有一个用于测试网络服务的小工具 它可以使用 POST 或 GET 调用 Web 服务 使用POST的代码是 public void PerformRequest WebRequest webRequest WebRequest Creat
  • 获取列表框中视图中的项目

    我有一个 ListBox 其属性 VirtualizingStackPanel VirtualizationMode 设置为 回收 我正在绑定一个自定义集合 实现IList and IList
  • 查找数组中的多个索引

    假设我有一个像这样的数组 string fruits watermelon apple apple kiwi pear banana 是否有一个内置函数可以让我查询 apple 的所有索引 例如 fruits FindAllIndex ap

随机推荐