MouseEnter MouseLeave in c#

时间:2014-08-29 20:20:14

标签: c# wpf wpf-controls mouseevent

我在编写用于从文本文件中绘制图形的程序时遇到了问题。我的程序目前正在从文本文件中读取数据并在画布上绘制它们,但我遇到了MouseEnter和MouseLeave事件的问题。

如果鼠标悬停在多边形上,我希望多边形能够改变颜色。我怎么能这样做?

该应用程序使用Canvas控件以WPF编写。

1 个答案:

答案 0 :(得分:0)

您可以使用event triggers。例如:

<Canvas>
    <Canvas.Resources>
        <Style TargetType="Polygon">
            <Style.Triggers>
                <EventTrigger RoutedEvent="MouseEnter">
                    <BeginStoryboard>
                        <Storyboard>
                            <ColorAnimation Duration="0:0:0.1" 
                                            Storyboard.TargetProperty="(Polygon.Fill).(SolidColorBrush.Color)"
                                            To="Yellow"
                                            />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
                <EventTrigger RoutedEvent="MouseLeave">
                    <BeginStoryboard>
                        <Storyboard>
                            <ColorAnimation Duration="0:0:0.1" 
                                            Storyboard.TargetProperty="(Polygon.Fill).(SolidColorBrush.Color)"
                                            To="Blue"
                                            />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Style.Triggers>
        </Style>
    </Canvas.Resources>

    <Polygon Fill="Blue" Canvas.Left="100" Canvas.Top="50">
        <Polygon.Points>
            <Point>0,0</Point>
            <Point>20,0</Point>
            <Point>25,5</Point>
            <Point>20,20</Point>
            <Point>0,20</Point>
            <Point>0,0</Point>
        </Polygon.Points>
    </Polygon>

</Canvas>