2009-09-13 91 views

回答

29

您可以尝试放大/缩小其内容的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> 

+0

太棒了!这正是我需要的。 – 2009-09-13 08:50:22

5

使用视框(如米兰Nankov说的)是一个伟大的想法。有一件事我必须警告你,它也会放大或缩小其他视觉方面。

例如,尺寸为200 X 1000的文本框与尺寸为20 X 100的文本框截然不同,为10 X。

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

Artifacts introduced by the use of viewbox

一个窍门是每文本块放在视框。但我想这会是一个矫枉过正的事情,我真的没有任何支持这个伎俩。请检查你自己并回复它是否实用。

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

5

您可以将整个容器放入一个视框

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

你不必每一个文本块放在它!

相关问题