Триггеры и стили WPF - PullRequest
       15

Триггеры и стили WPF

1 голос
/ 04 июня 2010

У меня есть UserControl, в разделе Ресурсы у меня есть код вроде

    <Style TargetType="{x:Type Viewbox}">

        <Style.Triggers>
            <Trigger Property="Viewbox.IsMouseOver" Value="True">
                <Setter Property="Viewbox.Effect" >
                    <Setter.Value>
                        <DropShadowEffect Color="DarkGray" Direction="45" BlurRadius="30"></DropShadowEffect>
                    </Setter.Value>
                </Setter>
            </Trigger>
        </Style.Triggers>
    </Style>

ТАК это работает для ViewBox, который у меня есть в этом элементе управления,

но когда я делаю

<Viewbox.Triggers>
        <Trigger Property="Viewbox.IsMouseOver" Value="True">
            <Setter Property="Viewbox.Effect" >
                <Setter.Value>
                    <DropShadowEffect></DropShadowEffect>
                </Setter.Value>
            </Setter>
        </Trigger>
    </Viewbox.Triggers>

в окне просмотра я получаю ошибки ....

Есть ли способ добавить локальные триггеры в ViewBox без использования стиля?

Ответы [ 2 ]

2 голосов
/ 04 июня 2010

С MSDN

Коллекция триггеров устанавливается только на элемент поддерживает EventTrigger, а не свойство триггеры (триггеры). Если вам требуется триггеры собственности, вы должны разместить это в стиле или шаблоне и затем назначьте этот стиль или шаблон элемент либо напрямую через свойство Style или косвенно через неявную ссылку на стиль.

1 голос
/ 04 июня 2010

Коллекции триггеров FrameworkElements против стилей и шаблонов допускают различные типы триггеров. Для FrameworkElement.Triggers вы можете использовать только EventTrigger, обычно используемый для запуска анимации. Коллекции Style, ControlTemplate и DataTemplate Triggers могут использовать более распространенные Trigger и DataTrigger, как вы используете. Это странная настройка, которая всегда напоминает незавершенную функцию. Вы можете изменить свой код, чтобы использовать раскадровку для анимации свойств DropShadowEffect из EventTrigger или просто использовать подход стиля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...