Мой WPF UserControl содержит две панели стека, и каждый из них содержит маркировки, текстовые поля и переключатели.
Я хотел бы установить VerticalAlignment
свойство к Center
ко всем средствам управления в моем UserControl с как можно меньше кодом.
Теперь у меня есть следующие решения:
VerticalAlignment="Center"
в каждом управленииFrameworkElement
и примените его непосредственно Для этих трех решений нужно слишком много кода.
Там какой-либо другой путь состоит в том, чтобы записать это?
Я надеялся что тот стиль определения на 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
, таким образом, это не проблема здесь.