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