1

我有一个 WPF 应用程序,它应该缩放它的 UI 以适应全屏 - 以不同的纵横比。我对其中的一些使用了网格,但这不会缩放字体,使用 ViewBox 来缩放 TabControl,但是会通过更改文本的纵横比来扭曲文本。

是否有人可以缩放控件的几何形状和文本的字体大小,但保持字体的相同纵横比?

我一直在寻找一段时间,但似乎没有人回答这个确切的问题。

这个问题似乎表明我可以自己从头开始编写一些东西,但我看不出任何我可以控制字体缩放的含义: Making a Viewbox scale vertical but horizo​​ntally stretched

4

2 回答 2

1

WPF 确实具有该控件...它称为Grid. 大多数 WPF 开发人员设计的应用程序中,控件会自动增长以填充大小,Window同时保持相同的字体大小纵横比。如果您希望它的特定部分随着放大而Window放大,那么使用 aViewBox表示该部分......而不是整体Window

于 2013-09-13T09:46:38.420 回答
0

我自己的解决方案是原始的,但在某种程度上确实有效。

要定义控件几何图形,请使用具有分数宽度/高度的网格以及其他控件大小以适应其内容。

从窗口的实际高度除以它的设计高度计算字体缩放。

将窗口级别的字体大小设置为设计大小*缩放。

问题:

  • 必须对原始设计高度进行硬编码,因为似乎没有任何方法可以从 XAML 中获取它
  • 必须对原始设计的字体大小进行硬编码,同上。
  • 不会缩放填充或边距,因此比例仍然会有点不稳定。
  • 如果您想要不同的字体大小,则必须为所有不同的控件编写代码。

WPF 确实使 IMO 变得困难:它具有可扩展的、独立于分辨率的元素,但实际上并不能帮助您构建可扩展的用户界面。

于 2013-09-17T20:50:31.243 回答