WPF 之 左鍵彈出操作菜單,並禁用右鍵菜單


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

  1、在前台加入一個帶菜單的Button,如下:

<Button Name="btnMenu" Width="50" Height="25" Content="菜單" Initialized="btnMenu_Initialized">
    <Button.ContextMenu>
        <ContextMenu Name="contextMenu">
            <MenuItem Header="復制"/>
            <MenuItem Header="粘貼"/>
            <MenuItem Header="剪切"/>
            <MenuItem Header="刪除"/>
        </ContextMenu>
    </Button.ContextMenu>
</Button>

   2、在后台,實現Initialized="btnMenu_Initialized",初始化右鍵菜單為null:

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

  3、設置單擊鼠標左鍵彈出菜單,如下:

private void btnMenu_Click(object sender, RoutedEventArgs e)
{
    //目標
    this.contextMenu.PlacementTarget = this.btnMenu;
    //位置
    this.contextMenu.Placement = PlacementMode.Top;
    //顯示菜單
    this.contextMenu.IsOpen = true;
}

 


免責聲明!

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



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