如何使用C#/WPF在鼠标进入和离开事件时为ListBox项添加动画效果?

3
我无法通过C#代码捕获/触发列表项的OnMouseEnter或OnMouseLeave事件。要明确,我不需要OnSelectedItem事件。
我想做的是能够处理ListBoxItem的OnMouseEnter和OnMouseLeave事件,以启动该ListBoxItem的DoubleAnimation - 我想在MouseEnter时放大其字体,在MouseLeave时恢复到原始大小。
有什么想法吗?谢谢。
1个回答

4

类似这样(作为ListBox的DataTemplate的一部分):

<DataTemplate.Triggers>
    <EventTrigger
        SourceName="BorderControl"
        RoutedEvent="TextBlock.MouseEnter">
        <BeginStoryboard>
            <Storyboard>
                <ColorAnimation Storyboard.TargetName="BorderControl"
                    Storyboard.TargetProperty="Background.Color"
                    To="DarkRed" Duration="00:00:00.2" />
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger>
    <EventTrigger
        SourceName="BorderControl"
        RoutedEvent="TextBlock.MouseLeave">
        <BeginStoryboard>
            <Storyboard>
                <ColorAnimation Storyboard.TargetName="BorderControl"
                    Storyboard.TargetProperty="Background.Color"
                    To="WhiteSmoke" Duration="00:00:00.2" />
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger>
</DataTemplate.Triggers>

通过http://www.dotnet-blog.com/index.php/2009/01/29/how-to-style-and-animate-a-wpf-listbox/实现WPF ListBox的样式和动画效果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接