我在Silverlight 3中使用了fontSize = 20的radiobutton。
在控件内,无线电对话框图像强制进行顶部对齐。
相对于文字/内容,图片显得过高。对于较小的文本大小,这并不明显,但是对于较大的文本大小,文本/内容与对话图像之间的垂直对齐看起来很难看。 关于如何垂直对齐=中间文本和对话框图像的任何想法?
TY
答案 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”
这样的东西