Member 12658724 Ответов: 1

Как добавить событие в стиль(ресурс)?


Я использую это пример чтобы выполнить проверку текстового поля. Вот этот код.
<Style TargetType="{x:Type TextBox}">
        <Setter Property="Validation.ErrorTemplate">
            <Setter.Value>
                <ControlTemplate>
                    <DockPanel LastChildFill="True">

                        <TextBlock DockPanel.Dock="Right"
                            Foreground="Orange"
                            Margin="5" 
                            FontSize="12pt"
                            Text="{Binding ElementName=MyAdorner, 
                           Path=AdornedElement.(Validation.Errors)[0].ErrorContent}"
                           >
                        </TextBlock>

                        <Border BorderBrush="Green" BorderThickness="3">
                            <AdornedElementPlaceholder Name="MyAdorner" />
                        </Border>

                    </DockPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <Trigger Property="Validation.HasError" Value="true">
                <Setter Property="ToolTip"
                    Value="{Binding RelativeSource={RelativeSource Self}, 
                   Path=(Validation.Errors)[0].ErrorContent}"/>
            </Trigger>
        </Style.Triggers>
    </Style>

</Application.Resources>

Теперь я собираюсь добавить щелчок мыши даже к нему. Кроме того, я хочу переместить этот стиль в отдельный файл стиля.

Вопрос в том, что в файле ресурсов не может быть события. Как же так?

Что я уже пробовал:

Найти это один.
Но, похоже, он использует код за чем-то вроде этого. Все может быть в порядке. Однако я хочу, чтобы шаблон мог быть повторно полезен.

1 Ответов

Рейтинг:
9

Graeme_Grant

Существует несколько различных типов триггеров, которые вы можете использовать. В вашем примере используется триггер данных. Для события вам нужно использовать EventTrigger.

Ранее в этом месяце я написал статью WPF об элементе управления ToggleSwitch. В нем я делюсь примером репликации экрана настроек уведомлений из Windows 10. В статье фрагмент кода XAML я покажу, как использовать EventTrigger для наведения курсора мыши. Это идеальный пример для вас: Гибкий WPF ToggleSwitch Lookless Control в C# & VB[^] - загрузите код, и вы сможете увидеть, как он работает.