3

リストアイテムのC#コードを介してOnMouseEnterまたはOnMouseLeaveイベントをキャプチャ/トリガーできません。明確にするために、OnSelectedItemイベントは必要ありません。

私がやりたいのは、ListBoxItemのOnMouseEnterイベントとOnMouseLeaveイベントを処理できるようにすることです。これにより、ListBoxItemのDoubleAnimationが開始されます。MouseEnterでフォントを拡大し、MouseLeaveで元のサイズに戻します。

何か案は?ありがとう。

4

1 に答える 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/経由

于 2009-06-02T22:14:32.370 に答える