WPF中鼠標左鍵單擊Button彈出ContextMenu,讓其右鍵ContextMenu失效


在目前的WPF版本中,很多的控件都有一個ContextMenu的屬性,可以設置組件的右鍵菜單,這點確實是很方便,但是有些時候我們可能會需要當單擊鼠標左鍵才彈出這個ContextMenu,而不是單擊鼠標右鍵(即:當單擊鼠標右鍵的時候不彈出該ContextMenu),這樣我們就能很方便的實現類似Flex中設置彈出式菜單的效果...

首先:

然后,設置一下:

 1 <Button Name="btnMenu" Width="50" Height="25" Content="菜單" Initialized="btnMenu_Initialized">
 2     <Button.ContextMenu>
 3         <ContextMenu Name="contextMenu">
 4             <MenuItem Header="復制"/>
 5             <MenuItem Header="粘貼"/>
 6             <MenuItem Header="剪切"/>
 7             <MenuItem Header="刪除"/>
 8         </ContextMenu>
 9     </Button.ContextMenu>
10 </Button>

看Initialized="btnMenu_Initialized"的實現:

1 private void btnMenu_Initialized(object sender, EventArgs e)
2 {
3     //設置右鍵菜單為null
4     this.btnMenu.ContextMenu = null;
5 }

接着,設置單擊鼠標左鍵彈出菜單:

1 private void btnMenu_Click(object sender, RoutedEventArgs e)
2 {
3     //目標
4     this.contextMenu.PlacementTarget = this.btnMenu;
5     //位置
6     this.contextMenu.Placement = PlacementMode.Top;
7     //顯示菜單
8     this.contextMenu.IsOpen = true;
9 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM