单选按钮和Silverlight

时间:2009-11-01 11:53:33

标签: silverlight

我在Silverlight 3中使用了fontSize = 20的radiobutton。

在控件内,无线电对话框图像强制进行顶部对齐。

相对于文字/内容,图片显得过高。对于较小的文本大小,这并不明显,但是对于较大的文本大小,文本/内容与对话图像之间的垂直对齐看起来很难看。 关于如何垂直对齐=中间文本和对话框图像的任何想法?

TY

2 个答案:

答案 0 :(得分:4)

RadioButton内的图像由几个分组为Grid元素的Ellipse元素组成。如果您查看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设置为Middle或使用TemplateBinding将其设置为VerticalContentAlignment值。

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

OR

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

答案 1 :(得分:3)

似乎最好的方法是使用像Padding =“5,-7,0,0”

这样的东西