我设计了一个带有添加按钮的Appbar。当用户单击添加按钮时,PopupMenu将打开并提供给定的两个选项。我想绑两个命令。我搜索了很多,有很多不同的方式。有人可以告诉我我该怎么做。我需要在用户点击按钮时显示弹出窗口。
语言是XAML / C#
private async void AddTaskButtonClick(object sender, RoutedEventArgs e)
{
PopupMenu menu = new PopupMenu();
menu.Commands.Add(new UICommand("Everyday Task"));
menu.Commands.Add(new UICommand("Onetime Task"));
await menu.ShowAsync(new Point(10,680));
}
我想向MenuItem添加命令但不能在Windows应用商店中添加。帮助我。
答案 0 :(得分:1)
这是一种方法,但它不是最好的(应该使用绑定):
添加UICommand
时,您必须设置其他属性,例如下面的代码。我已经利用了你的代码,并且在将PopUpMenu
定位在计算坐标上的问题上进行了一些修改,如下所示:
private async void AddTaskButtonClick(object sender, RoutedEventArgs e)
{
PopupMenu menu = new PopupMenu();
menu.Commands.Add(new UICommand
{
Id = 1,
Label = "Everyday Task",
Invoke = DoTasks
});
menu.Commands.Add(new UICommand
{
Id = 2,
Label = "Onetime Task",
Invoke = DoTasks
});
//Determine position of where to show the PopUp :
var pointTransform = ((Button) sender).TransformToVisual(Window.Current.Content);
var screenCoords = pointTransform.TransformPoint(new Point(50, 10));
//50, 10 are Horizontal and Vertical offsets, you should customize them as you wish.
await menu.ShowAsync(screenCoords);
}
之后,您将需要DoTasks
方法:
private void DoTasks(IUICommand command)
{
var currentId = (int) command.Id;
switch(currentId)
{
case 1 :
{
//your Everyday Task code here
}
case 2 :
{
//your OneTime Task code here
}
}
}
你也可以使用不同的Invoke
- 这意味着,使用两种不同的方法。