2009-09-13 86 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> 

你不必每一個文本塊放在它!

相關問題