2009-11-01 64 views
3

我在Silverlight 3中使用FontSize = 20的單選按鈕。Radiobuttons和Silverlight

在控制中,無線電對話框圖像被強制頂部對齊。

相對於文字/內容,圖片顯得過高。對於較小的文字大小,這並不明顯,但文字大小較大時,文本/內容和對話框圖像之間的垂直對齊看起來很醜。 有關如何垂直對齊=中間文本和對話框圖像的任何想法?

TY

回答

4

的單選按鈕內部的圖像由分組到網格元件幾個橢圓元件的。如果您查看RadioButton模板(使用Expression Blend編輯現有模板的副本),您將看到Grid元素VerticalAlignment設置爲Top。

<Grid HorizontalAlignment="Left" VerticalAlignment="Top"> 
    <Ellipse x:Name="Background" Fill="#FFFFFFFF" 
    Stroke="{TemplateBinding BorderBrush}" 
    StrokeThickness="{TemplateBinding BorderThickness}" 
    Height="14" Margin="1" Width="14"/> 
    ... 

的ContentPresenters(其中顯示文本)VerticalAlignment設爲您在VerticalContentAlignment屬性設置的值。

<ContentPresenter x:Name="contentPresenter" 
    HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
    Margin="{TemplateBinding Padding}" 
    VerticalAlignment="{TemplateBinding VerticalContentAlignment}" 
    Grid.Column="1" Content="{TemplateBinding Content}" 
    ContentTemplate="{TemplateBinding ContentTemplate}"/> 

要解決你的問題,你需要Grid元素的VerticalAlignment設置爲中等或使用TemplateBinding將其設置爲VerticalContentAlignment值。

<Grid HorizontalAlignment="Left" 
    VerticalAlignment="Middle"> 

OR

<Grid HorizontalAlignment="Left" 
    VerticalAlignment="{TemplateBinding VerticalContentAlignment}"> 
+0

救了我的一天。謝謝! – 2011-09-21 10:33:04

3

看來最好的辦法是使用類似填充=「5,-7,0,0」