Свойство Setting VerticalAlignment ко всем средствам управления

Мой WPF UserControl содержит две панели стека, и каждый из них содержит маркировки, текстовые поля и переключатели.
Я хотел бы установить VerticalAlignment свойство к Center ко всем средствам управления в моем UserControl с как можно меньше кодом.

Теперь у меня есть следующие решения:

  • грубая сила - помещенный VerticalAlignment="Center" в каждом управлении
  • определите один стиль для FrameworkElement и примените его непосредственно
  • определите стили для каждого типа средств управления на пользовательском элементе управления (это нуждается в 3 определениях стилей, но автоматически применяет стиль к управлению),

Для этих трех решений нужно слишком много кода.
Там какой-либо другой путь состоит в том, чтобы записать это?
Я надеялся что тот стиль определения на FrameworkElement автоматически установил бы свойство на все средства управления, но оно не работает.

Вот отрывок моего текущего XAML (я опустил вторую, очень похожую панель стека):

<UserControl.Resources>
    <Style x:Key="BaseStyle" TargetType="FrameworkElement">
        <Setter Property="VerticalAlignment" Value="Center" />
    </Style>
</UserControl.Resources>
<Grid>
    <StackPanel Orientation="Horizontal">
        <TextBlock Style="{StaticResource BaseStyle}" Text="Value:" />
        <RadioButton Style="{StaticResource BaseStyle}">Standard</RadioButton>
        <RadioButton Style="{StaticResource BaseStyle}">Other</RadioButton>
        <TextBox Style="{StaticResource BaseStyle}" Width="40"/>
    </StackPanel>
</Grid>

Править:
Комментарий Желания ре: Я действительно ненавижу идею записать управление, форматирующее код в codebehind. XAML должен быть достаточным для этого действительно простого пользовательского элемента управления.

Комментарий Muad' Dib's ре: Средства управления, которые я использую в своем пользовательском элементе управления, получены из FrameworkElement, таким образом, это не проблема здесь.

6
задан Dave Clemmer 16 August 2011 в 16:06
поделиться