我知道FontStretch属性,但不确定如何使用它。
我想要的是创建一个分辨率为 200x400 的窗口。然后,当用户将其拉伸到 400x800(或其他)时,我只想将整个窗口拉伸/放大(在给定的场景中,所有内容都会增加一倍),而不仅仅是四处移动。如果它也适用于图像,那就太好了,但只要获得字体和一般对象大小就可以了。
是否有提供此功能的内置函数或 3rd 方库?
我知道FontStretch属性,但不确定如何使用它。
我想要的是创建一个分辨率为 200x400 的窗口。然后,当用户将其拉伸到 400x800(或其他)时,我只想将整个窗口拉伸/放大(在给定的场景中,所有内容都会增加一倍),而不仅仅是四处移动。如果它也适用于图像,那就太好了,但只要获得字体和一般对象大小就可以了。
是否有提供此功能的内置函数或 3rd 方库?
如果您的所有内容都必须按比例拉伸,包括文本、控件和图像,请将主面板尺寸固定为 200x400 并将其包含在Viewbox
面板中。
当用户以非比例方式(例如 300x400)调整窗口大小时,可能会出现问题。然后根据 Viewbox.StretchDirection 和 Stretch 属性,您可能会有一个扭曲的布局或空白区域。为了解决这个问题,您可以将窗口大小限制在某个比例。
您可以在此处查看 ColorPicker 控件的实现:http: //livegeometry.codeplex.com/SourceControl/changeset/view/34720#405553 ,尤其是 MeasureOverride、ArrangeOverride 和 ComputeScaleFactor。m_Scale 是应用于整个控件的 ScaleTransform。
如有必要,您还可以使用 SizeToContent 和 LayoutTransform。