2015-11-11 126 views
1

Application Menu image在鼠标离开事件

我写的应用程序在工作中使用WPF运行情节串连图板来显示有用信息。我的工作是对不同州的多个站点的计算机进行故障排除。该应用程序被分成一个按钮列表,每个状态一个,以及该状态下的一个子菜单列表框。这些按钮位于应用程序的左侧,ListBox菜单在按钮的右侧打开。我已经为菜单按钮和列表框设置了模板。在按钮上MouseEnter显示站点列表框的故事板运行。如果鼠标移过菜单,菜单将保持打开状态,直到鼠标离开。问题是,如果鼠标没有进入菜单,只是在按钮上移动,每个按钮菜单都会打开,但直到您将鼠标悬停在菜单上才会关闭,然后离开。 菜单只能在调用它的按钮或菜单本身上打开,并在输入不同的按钮时关闭。我想过如果鼠标没有结束“Button 1 or Menu 1”,然后关闭“Menu 1”等等,每个按钮/菜单组合的情况,但我不知道该怎么做。

我在想这可以用我的ListBox风格的多触发器来完成,但我不知道如何。我可以执行MouseLeave事件触发器,但不知道如何声明鼠标不在菜单随附的按钮上。我对编程非常陌生,并且非常喜欢一些帮助。

回答

0

不是我想的最好的方式。但你可以试试这个。

  • 首先。您应该将某些属性绑定到按钮和列表框菜单IsMouseOver属性。
  • 二。在每个按钮中,您应该在Style.Triggers之间添加StyleMultiDataTrigger。那里有Butt1IsMouseOverMenu1IsMouseOver是这些绑定属性。

    <Style.Triggers> 
        <MultiDataTrigger> 
         <MultiDataTrigger.Conditions> 
          <Condition Binding="{Binding Butt1IsMouseOver}" Value="False" /> 
          <Condition Binding="{Binding Menu1IsMouseOver}" Value="False" /> 
         </MultiDataTrigger.Conditions> 
         <MultiDataTrigger.EnterActions> 
          <BeginStoryboard> 
           <Storyboard /> 
           <!-- close animation --> 
          </BeginStoryboard> 
         </MultiDataTrigger.EnterActions> 
         <MultiDataTrigger.ExitActions> 
          <BeginStoryboard> 
           <Storyboard/> 
           <!-- open animation--> 
          </BeginStoryboard> 
         </MultiDataTrigger.ExitActions> 
        </MultiDataTrigger> 
    </Style.Triggers> 
    

+0

感谢您的响应。我一直在试图找出这个问题。我真的很感谢帮助! 我发现另一个是做基本相同的事情寿。我在网格中制作了一个菜单并编辑了模板并做了一些样式。然后,让它向右而不是向下打开,我编辑了子菜单的一个副本,并设置位置=“正确”。请问我在找什么,但没有动画。仍然会继续努力,因为我认为这是一个整洁的想法。 – James

+0

不客气。祝你好运=) – bars222