WPF EventTriggers - 无法转换字符串“MouseEnter” 在属性“RoatedEvent”中; 到“System.Windows.RoatedEvent”类型的对象

发布于 2024-07-15 00:01:58 字数 1296 浏览 11 评论 0原文

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

<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>

我知道 Border 上有一个 MouseEnter 事件,因为它是在 UIElement 中定义的,但我仍然得到

无法转换字符串“MouseEnter” 属性“RoatedEvent”到对象 输入“System.Windows.RoatedEvent”

当我运行应用程序时,立即

。 任何帮助将不胜感激。

I can't get any event triggers to work. A simplified example of what I'm doing is below -

<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>

I know there is a MouseEnter event on Border since it is defined in UIElement but I'm still getting

Cannot convert string 'MouseEnter' in
attribute 'RoutedEvent' to object of
type 'System.Windows.RoutedEvent'

as soon as i run the application.

Any help would be hugely appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

帅气尐潴 2024-07-22 00:01:58

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

<EventTrigger RoutedEvent="Mouse.MouseEnter"></EventTrigger>

You have to supply the Type as well, so:

<EventTrigger RoutedEvent="Mouse.MouseEnter"></EventTrigger>
浪菊怪哟 2024-07-22 00:01:58

完全限定事件名称:

<EventTrigger RoutedEvent="Border.MouseEnter">

</EventTrigger>

Fully-qualify the event name:

<EventTrigger RoutedEvent="Border.MouseEnter">

</EventTrigger>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文