silverlight 右鍵菜單處理

來源:互聯網
上載者:User

參考了許多文章,覺得寫得挺好,但是總是不能簡化說明。

  比如右鍵菜單,我們最關心的是如何屏蔽掉預設的菜單,

  如何在右擊某個控制項的時候顯示對應的右鍵菜單。

  如何構造產生右鍵菜單,如何響應右鍵菜單的事件。

  這些問題寥寥幾句代碼就能說明問題了,但是高手都沒有直說。

  當然這些文章包含了許多其他的知識點,值得以後參考。

  

  

 

  以下是我的簡單實現:

 

<UserControl x:Class="TestSilverlightRightMouseClickDemo.UC_RightButton"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">

<Grid x:Name="LayoutRoot" Background="White" MouseRightButtonDown="LayoutRoot_MouseRightButtonDown">
<Button Content="右鍵菜單" Height="23" HorizontalAlignment="Left"
Margin="10,10,0,0" Name="btnRight" VerticalAlignment="Top" Width="75"/>
</Grid>
</UserControl>


using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace TestSilverlightRightMouseClickDemo
{
public partial class UC_RightButton : UserControl
{
public UC_RightButton()
{
InitializeComponent();
BindMenu();//只為按鈕控制項綁定右鍵菜單
}

private void BindMenu()
{
ContextMenu cm = new ContextMenu();//建立右鍵菜單
MenuItem mi = new MenuItem();//建立右鍵功能表項目
mi.Header = "功能表項目";
mi.Click += MenuItem_Click;//為功能表項目註冊事件
cm.Items.Add(mi);
ContextMenuService.SetContextMenu(btnRight, cm);//為控制項綁定右鍵菜單
}

private void LayoutRoot_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
e.Handled = true;//屏蔽預設的右鍵菜單
}

private void MenuItem_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("右鍵菜單事件");
}
}
}
  參考:

  風雲的銀光志Silverlight4.0教程之使用滑鼠右鍵事件和滾輪事件

  Silverlight4給DataGrid添加ContextMenu右鍵菜單

  本文來自大氣象的部落格,原文地址:http://www.cnblogs.com/greatverve/archive/2010/07/07/silverlight-right-button.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.