3

我知道FontStretch属性,但不确定如何使用它。

我想要的是创建一个分辨率为 200x400 的窗口。然后,当用户将其拉伸到 400x800(或其他)时,我只想将整个窗口拉伸/放大(在给定的场景中,所有内容都会增加一倍),而不仅仅是四处移动。如果它也适用于图像,那就太好了,但只要获得字体和一般对象大小就可以了。

是否有提供此功能的内置函数或 3rd 方库?

4

2 回答 2

4

如果您的所有内容都必须按比例拉伸,包括文本、控件和图像,请将主面板尺寸固定为 200x400 并将其包含在Viewbox面板中。

当用户以非比例方式(例如 300x400)调整窗口大小时,可能会出现问题。然后根据 Viewbox.StretchDirection 和 Stretch 属性,您可能会有一个扭曲的布局或空白区域。为了解决这个问题,您可以将窗口大小限制在某个比例。

于 2009-11-06T10:57:22.603 回答
1

您可以在此处查看 ColorPicker 控件的实现:http: //livegeometry.codeplex.com/SourceControl/changeset/view/34720#405553 ,尤其是 MeasureOverride、ArrangeOverride 和 ComputeScaleFactor。m_Scale 是应用于整个控件的 ScaleTransform。

如有必要,您还可以使用 SizeToContent 和 LayoutTransform。

于 2009-11-06T08:58:09.583 回答