/// <summary> /// Creates a button that when clicked displays a flyout with the specified <paramref name="links"/>. /// Clicking on a link opens a web browser on that page. /// </summary> /// <param name="links"></param> /// <returns></returns> internal static Windows.UI.Xaml.Controls.Button CreateLinksAppBarButton(Dictionary <string, Uri> links) { var popup = new Windows.UI.Popups.PopupMenu(); Windows.UI.Popups.UICommandInvokedHandler popupHandler = async(Windows.UI.Popups.IUICommand command) => { await Windows.System.Launcher.LaunchUriAsync(links[command.Label]); }; foreach (var item in links) { popup.Commands.Add(new Windows.UI.Popups.UICommand(item.Key, popupHandler)); } var button = new Windows.UI.Xaml.Controls.Button { Style = App.Current.Resources["LinksAppBarButtonStyle"] as Windows.UI.Xaml.Style }; button.Click += async(object sender, Windows.UI.Xaml.RoutedEventArgs e) => { var btnSender = sender as Windows.UI.Xaml.Controls.Button; var transform = btnSender.TransformToVisual(Windows.UI.Xaml.Window.Current.Content) as Windows.UI.Xaml.Media.MatrixTransform; var point = transform.TransformPoint(new Windows.Foundation.Point()); await popup.ShowAsync(point); }; return(button); }
private async void Button_Click_3(object sender, RoutedEventArgs e) { var dlg = new Windows.UI.Popups.MessageDialog("测试消息弹框!!") { Title = "测试标题" }; Windows.UI.Popups.UICommandInvokedHandler fun = async uicmd => { var tdlg = new Windows.UI.Popups.MessageDialog("") { Title = "说明", Content = $"您点击了{uicmd.Label}" }; tdlg.Commands.Add(new Windows.UI.Popups.UICommand("确定")); await tdlg.ShowAsync(); }; dlg.Commands.Add(new Windows.UI.Popups.UICommand("确定", fun)); dlg.Commands.Add(new Windows.UI.Popups.UICommand("取消", fun)); await dlg.ShowAsync(); }