ContextMenu的使用
下面代码的效果是右键单击图片时,显示菜单。当单击菜单的某项时,执行相应的命令。
Image.RightTapped += new RightTappedEventHandler(Image_RightTapped);
async void Image_RightTapped(object sender, RightTappedRoutedEventArgs e)
{
var menu = new PopupMenu();
menu.Commands.Add(new UICommand("Open with", (command) =>
{
Display.Text = "'" + command.Label + "' selected";
}));
menu.Commands.Add(new UICommand("Save attachment", (command) =>
{
Display.Text = "'" + command.Label + "' selected";
}));
var chosenCommand = await menu.ShowForSelectionAsync(GetElementRect((FrameworkElement)sender));
if (chosenCommand == null)
{
Display.Text = "Context menu dismissed";
}
}
Rect GetElementRect(FrameworkElement element)
{
GeneralTransform buttonTransform = element.TransformToVisual(null);
Point point = buttonTransform.TransformPoint(new Point());
return new Rect(point, new Size(element.ActualWidth, element.ActualHeight));
}
效果图:

2、文本的ContextMenuOpening事件
Scenario2TextBox.ContextMenuOpening += new ContextMenuOpeningEventHandler(Scenario2TextBox_ContextMenuOpening);
async void Scenario2TextBox_ContextMenuOpening(object sender, ContextMenuEventArgs e)
{
// Create a menu and add commands specifying an id value for each instead of a delegate.
var menu = new PopupMenu();
menu.Commands.Add(new UICommand("Copy", null, 1));
menu.Commands.Add(new UICommandSeparator());
menu.Commands.Add(new UICommand("Highlight", null, 2));
menu.Commands.Add(new UICommand("Look up on dictionary", null, 3));
// We don't want to obscure content, so pass in a rectangle representing the sender of the context menu event.
// We registered command callbacks; no need to await and handle context menu completion
var chosenCommand = await menu.ShowForSelectionAsync(GetElementRect((FrameworkElement)sender));
if (chosenCommand != null)
{
switch ((int)chosenCommand.Id)
{
case 1:
Output2Text.Text = "'" + chosenCommand.Label + "'(" + chosenCommand.Id.ToString() + ") selected";
break;
case 2:
Output2Text.Text = "'" + chosenCommand.Label + "'(" + chosenCommand.Id.ToString() + ") selected";
break;
case 3:
Output2Text.Text = "'" + chosenCommand.Label + "'(" + chosenCommand.Id.ToString() + ") selected";
break;
}
}
else
{
Output2Text.Text = "Context menu dismissed";
}
}
效果图:

效果是右键文本框时,弹出菜单。如上图。
作者:Work Hard Work Smart
出处:http://www.cnblogs.com/linlf03/
欢迎任何形式的转载,未经作者同意,请保留此段声明!
浙公网安备 33010602011771号