Радиокнопки и Silverlight - PullRequest
       21

Радиокнопки и Silverlight

3 голосов
/ 01 ноября 2009

У меня есть радио-кнопка в Silverlight 3 с FontSize = 20.

Внутри элемента управления изображение радио-диалога принудительно выравнивается по верху.

Относительно текста / содержимого изображение выглядит слишком высоко. Это не очевидно для меньшего размера текста, однако при большом размере текста вертикальное выравнивание между текстом / содержимым и изображением диалога выглядит некрасиво. Любые идеи о том, как выровнять по вертикали = посередине текст и изображение диалога?

ти

Ответы [ 2 ]

4 голосов
/ 01 ноября 2009

Изображение внутри RadioButton состоит из нескольких элементов Ellipse, сгруппированных в элемент Grid. Если вы посмотрите на шаблон 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}"/>

Чтобы исправить вашу проблему, вам нужно установить VerticalAlignment элемента Grid в Middle или использовать TemplateBinding, чтобы установить для него значение VerticalContentAlignment.

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

OR

<Grid HorizontalAlignment="Left" 
  VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
3 голосов
/ 01 ноября 2009

Похоже, что лучше всего использовать что-то вроде Padding = "5, -7,0,0"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...