WPF EventTriggers - 无法将属性"RoutedEvent"中的字符串"MouseEnter"转换为"System.Windows.RoutedEvent"类型的对象

Eig*_*ite 5 wpf eventtrigger

我无法让任何事件触发器工作.我正在做的一个简化示例如下 -

<Window x:Name="win" x:Class="EventTriggers.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Window.Resources>
    <ControlTemplate x:Key="buttonT">
        <Border Background="#333">
            <TextBlock Text="{Binding}" HorizontalAlignment="Stretch" Foreground="White"/>
            <Border.Triggers>
                <EventTrigger RoutedEvent="MouseEnter">

                </EventTrigger>
            </Border.Triggers>
        </Border>
    </ControlTemplate>

    <DataTemplate x:Key="lbt">
        <Button Template="{StaticResource buttonT}" Click="Button_Click"></Button>
    </DataTemplate>

</Window.Resources>
<ListBox ItemsSource="{Binding ElementName=win,Path=col}" ItemTemplate="{StaticResource lbt}">
</ListBox>
Run Code Online (Sandbox Code Playgroud)

我知道有一个MouseEnter关于边界的事件,因为它被定义,UIElement但我仍然得到

无法将属性"RoutedEvent"中的字符串"MouseEnter"转换为"System.Windows.RoutedEvent"类型的对象

一旦我运行该应用程序.

任何帮助将非常感激.

Raz*_*zie 14

您还必须提供类型,因此:

<EventTrigger RoutedEvent="Mouse.MouseEnter"></EventTrigger>
Run Code Online (Sandbox Code Playgroud)

  • 我听说没有这样的事情.说实话,这听起来有点荒谬.你在哪里读到的? (4认同)

Ken*_*art 6

完全限定事件名称:

<EventTrigger RoutedEvent="Border.MouseEnter">

</EventTrigger>
Run Code Online (Sandbox Code Playgroud)