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/
沒有留言:
張貼留言