/// <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);
        }
示例#2
0
        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();
        }