Применение стиля ко всем производным классам в WPF

Я лично использую FMDB, и последнее обновление его вчера было.

8
задан Dave Clemmer 23 August 2011 в 18:32
поделиться

2 ответа

Вот одно решение:

<Window.Resources>
    <Style TargetType="Control" x:Key="BaseStyle">
        <Setter Property="Margin" Value="4"/>
    </Style>
    <Style BasedOn="{StaticResource BaseStyle}" TargetType="Button" />
    <Style BasedOn="{StaticResource BaseStyle}" TargetType="Label" />
    <Style BasedOn="{StaticResource BaseStyle}" TargetType="TextBox" />
</Window.Resources>
<Grid>
    <StackPanel Margin="4" HorizontalAlignment="Left">
        <Label>Zipcode</Label>
        <TextBox Name="Zipcode"></TextBox>
        <Button>get weather info</Button>
    </StackPanel>
</Grid>
10
ответ дан 5 December 2019 в 10:04
поделиться

Это невозможно в WPF. У вас есть несколько вариантов, которые могут вам помочь:

  1. Создайте один стиль на основе другого с помощью атрибута BasedOn.
  2. Переместите общую информацию (в данном случае поля) в ресурс и укажите ссылку на этот ресурс из каждого стиля вы создаете.

Пример 1

<Style TargetType="Control">
    <Setter Property="Margin" Value="4"/>
</Style>

<Style TargetType="TextBox" BasedOn="{StaticResource {x:Type Control}}">
</Style>

Пример 2

<Thickness x:Key="MarginSize">4</Thickness>

<Style TargetType="TextBox">
    <Setter Property="Margin" Value="{StaticResource MarginSize}"/>
</Style>
7
ответ дан 5 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: