2015-11-11 124 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