如何相对缩放用户控件的大小?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何相对缩放用户控件的大小?相关的知识,希望对你有一定的参考价值。

如何相对缩放用户控件的大小,如图像(在图像编辑器中)。

示例(100%):

alt text (来源:stegnar.com

缩小UC(70%):

alt text (来源:stegnar.com

我在图片编辑器中实现了这一点,但我想在WPF中。 :)我需要这个来调整我的应用程序到不同的屏幕分辨率,而没有任何隐藏(没有滚动条)。

答案

您可以尝试使用ViewBox控件来扩展/缩小其内容,以便填充可用空间。

<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
Title="Window1">
<Grid>
    <Viewbox StretchDirection="Both" Stretch="Uniform">
        <local:UserControl1 Height="600" Width="600"/>
    </Viewbox>
</Grid>

另一答案

您可以将整个容器放入ViewBox中

<Viewbox StretchDirection="Both" Stretch="Uniform">
  <Grid>...</Grid>
</Viewbox>

您不必将每个单独的文本块放入其中!

另一答案

使用Viewbox(正如米兰·南科夫所说)是一个好主意。我必须警告你的一件事是它也放大或缩小其他视觉方面。

例如,尺寸为200 X 1000的文本框与尺寸为20 X 100放大10倍的文本框非常不同。

WPF提供了许多布局选项,可以根据容器的大小更改控件的尺寸。但它不会改变文本的大小。 Viewbox克服了这个问题,但它引入了另一个问题。检查下方的图像,该图像在缩放前后的视图框中显示相同的文本框。

可以使用的一个技巧是将每个文本块放在视图框中。但我想这将是一种矫枉过正,我认真对此技巧没有任何支持。请自行检查并回答是否实用。

另一个技巧可能是将控件的高度绑定到字体大小。在这种情况下我们需要一个转换器。请参阅此回复.. Resize font in TextBox in Grid

以上是关于如何相对缩放用户控件的大小?的主要内容,如果未能解决你的问题,请参考以下文章

win10qt软件控件大小

mfc dialog 尺寸无法固定控件位置如何确定?

如何自动缩放一组控件的字体大小?

VB中如何设置窗体内控件大小随窗体大小改变而改变?

调整片段中 TextView 的文本大小

c#winform 关于页面大小与控件大小的问题