Унаследованные стили Xaml - PullRequest
4 голосов
/ 22 апреля 2009

Есть ли способ в XAML установить стиль, который будет применяться ко всем элементам управления? Например, ниже я хотел бы поставить поле на все мои элементы управления. Я могу добавить стиль для каждого типа, изменив TargetType на Button, CheckBox и т. Д. Вместо этого я хотел бы установить его, как у меня ниже, где я устанавливаю стиль для всех типов, наследуемых от Control:

<UserControl x:Class="MyPanel"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    Height="300" Width="300">
    <UserControl.Resources>
        <Style TargetType="Control">
            <Setter Property="Margin" Value="3"/>
        </Style>
</UserControl.Resources>
    <StackPanel>
        <Button>My Button</Button>
        <CheckBox>My Checkbox</CheckBox>
    </StackPanel>
</UserControl>

1 Ответ

15 голосов
/ 22 апреля 2009

Нет способа сделать это. Тем не менее, вы можете определить базовый стиль и наследовать от него:

<Style x:Key="BaseStyle">
    <Setter Property="FrameworkElement.Margin" Value="3"/>
</Style>

<Style TargetType="Button" BasedOn="{StaticResource BaseStyle}">
</Style>

<Style TargetType="TextBox" BasedOn="{StaticResource BaseStyle}">
</Style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...