2014-08-29 82 views
1

我有问题,同时编写一个程序来从文本文件中绘制数字。我的程序目前正在读取文本文件中的数字并在画布上绘制它们,但是我对MouseEnter和MouseLeave事件有问题。MouseEnter MouseLeave in c#

我想多边形改变颜色,如果有鼠标放在上面。我怎样才能做到这一点?

该应用程序是用WPF编写的,使用Canvas控件。

+0

欢迎来到SO!请提供您遇到的问题的更多细节。到目前为止,你有什么? – fuesika 2014-08-29 20:26:27

+0

你遇到什么问题?您是否在绘画或事件处理方面遇到麻烦? – 2014-08-29 20:26:36

+0

您可以尝试IsMouseDirectlyOverChanged事件。 MouseLeave在elmenet的边界上运行,我希望这意味着边界框。 – 2014-08-29 20:27:08

回答

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

McGarnagle非常感谢,我想要它,它运行:) – 2014-08-29 20:49:32