WPF - Невозможно назначить стили пользовательскому элементу управления - PullRequest
1 голос
/ 20 декабря 2010

Как я могу установить свойства UserControl со стилями? (Я прочитал соответствующие вопросы, но ни один из них не решил мою проблему)

Я определяю простой UserControl следующим образом:

<UserControl x:Class="MyProject.RedSquare"
    ...
    Height="10" Width="10" Background="Red">
    <Grid>

    </Grid>
</UserControl>

Теперь я могу вручную назначить ширину / высоту этого элемента управления.

Но я не могу назначить свойства стилям.

Это не работает:

<Window.Resources>
    <Style x:Key="red" TargetType="{x:Type local:RedSquare}">
        <Setter Property="Width" Value="200" />
    </Style>
</Window.Resources>

...

<local:RedSquare Style="{StaticResource red}" />

Странное поведение: я могу изменить поле элемента управления со стилем, но все остальные свойства не работают?

Есть идеи?

1 Ответ

5 голосов
/ 20 декабря 2010

Ваш пользовательский элемент управления имеет жестко заданную ширину и высоту:

Height="10" Width="10"

локальные значения свойств имеют более высокий приоритет, чем значения в установщике стилей. Попробуйте заменить ширину / высоту значениями времени разработки:

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
d:DesignHeight="10" d:DesignWidth="10" 

С уважением, Колин Э.

...