Radiobuttons和Silverlight

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

在控件内,无线电对话图像被强制到顶部对齐.

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

TY

解决方法

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">

要么

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

相关文章

如何在Silverlight4(XAML)中绑定IsEnabled属性?我试过简单的...
我正在编写我的第一个vb.net应用程序(但我也会在这里标记c#,...
ProcessFile()是在UIThread上运行还是在单独的线程上运行.如...
我从同行那里听说,对sharepoint的了解对职业生涯有益.我们不...
我正在尝试保存一个类我的类对象的集合.我收到一个错误说明:...
我需要根据Silverlight中的某些配置值设置给定控件的Style.我...