2011-11-18 65 views
3

這裏是我的非常簡單的XAML:獲得一個TextBlock /標籤在Viewbox控件沒有不良填充,以規模

<Window x:Class="Test.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" Height="300" Width="300" Background="Black" Padding="0" Margin="0" > 
    <Viewbox Margin="0"> 
     <TextBlock Text="Test" Background="AliceBlue" Foreground="Red" 
      Padding="0" Margin="0" /> 
    </Viewbox> 
</Window> 

這應該縮放標籤/文本塊(我都試過),以填補儘可能多的窗口儘可能保持文字的縱橫比。問題是,如果你拖動窗口的大小,你會發現在文本的頂部和底部似乎有某種不可見的,不可更改的填充。

左右似乎並不把它(左圖),但頂部和底部DO(右圖):

Left and Right seem fine.Left and right, not so much!

我在這裏指出微胖我是談到:

enter image description here

期望它使更多的像這樣的(我手動這樣做,所以寬高比不是每FECT):

enter image description here

有沒有人解決這個?也許我需要直接用GDI +繪製這些文字,但我甚至不知道從哪裏開始,所以我應該打穀歌的任何關鍵字也將不勝感激!

+0

注意:你上面和下面的文字一樣奇怪的填充,即使你設置了'Viewbox'有'拉伸=「填充」' –

回答

1

它是字體的一部分,據我所知,嘗試設置FontFamilyWebdings

Screenshot

+0

EWWW ...所以顯然WPF是不看在渲染的頂部和底部,而是看着字體告訴它它需要的高度?嗯......猜我需要找到另一種字體,或者試圖找出另一種方式來呈現這些東西(我想用GDI +或其他東西繪製它)。 –

+0

那麼,你也可以使用像'Margins'和'ClipToBounds'這樣的消極手段來手動切割,當然這並不理想。 –

+0

我最終使用了類似於負邊距的「解決方法」。我把我的文本放在帆布上,並將頂部設置爲負值,並將高度超過100%。 –