Как анимировать элементы ListBox для событий MouseEnter и MouseLeave, используя C # / WPF? - PullRequest
3 голосов
/ 03 июня 2009

Я не могу перехватить / вызвать события OnMouseEnter или OnMouseLeave с помощью кода C # для элементов списка. Чтобы было ясно, мне не нужно событие OnSelectedItem.

То, что я хочу сделать, - это иметь возможность обрабатывать события OnMouseEnter и OnMouseLeave для ListBoxItem, которые будут запускать DoubleAnimation для этого ListBoxItem - я хочу увеличить его шрифт в MouseEnter и восстановить исходный размер в MouseLeave.

Есть идеи? Спасибо.

1 Ответ

4 голосов
/ 03 июня 2009

Примерно так (как часть DataTemplate ListBox):

<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 / как создать стиль и анимировать wpf-listbox /

...