2015年4月16日 星期四

[Silverlight 4] 關閉預設的右鍵選單,並新增自定義的選單內容

Share it Please
Silverlight應用程式預設會有自己的滑鼠右鍵選單

是一個單純設定Silverlight應用程式的按鈕

如要關掉此預設的右鍵選單,步驟如下 :


1. 於XAML內最上層的UserControl內新增MouseRightButtonDown事件
    EX: MouseRightButtonDown="UserControl_MouseRightButtonDown"

2. 在事件內容寫上e.Handled = true;  如下:
        private void UserControl_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
        {
            e.Handled = true; //use to disable the default silverlight pop-up
        }

這樣子就可以隱藏Silverlight預設的右鍵選單


那麼,如果要新增自定義的右鍵選單呢?
步驟如下 :
1. 先在參考組件(Assembly)下加入兩隻dll,後面需要用到他們
    (1) System.Windows.Controls.Toolkit
    (2) System.Windows.Controls.Data.Toolkit

2. 於要加入右鍵選單的User Control xaml內新增MouseRightButtonUp事件
    ex: MouseRightButtonUp="UserControl_MouseRightButtonUp"

3. 先在程式內定義兩個變數(ContextMenu跟MenuItem)
        private ContextMenu RightClickMenu = null;
        private MenuItem menuItem;  

4. 於MouseRightButtonUp事件中填入以下自定義的選項內容,格式如下 :
        private void UserControl_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
        {
            RightClickMenu = new ContextMenu();
            RightClickMenu.HorizontalOffset = e.GetPosition(LayoutRoot).X;
            RightClickMenu.VerticalOffset = e.GetPosition(LayoutRoot).Y;

            menuItem = new MenuItem();
            menuItem.Header = "選項1";
            menuItem.Click += new RoutedEventHandler(menuItem_Click);
            RightClickMenu.Items.Add(menuItem);

            RightClickMenu.IsOpen = true;
        }

5. 撰寫Click事件的內容,就大功告成了


參考資料 :
1. http://www.c-sharpcorner.com/uploadfile/dpatra/right-click-and-context-menu-in-silverlight-4/




沒有留言:

張貼留言

Followers

Follow The Author