2

Windows 8 Metro を中心にポップアップを表示する方法はありますか?

VerticalAlignmentHorizontalAlignmentを "Center" に設定し、VerticsalOffsetHorizontalOffsetを 0 に設定すると、左上隅が画面の中央に表示されるハウリング ポップアップが発生します。

綺麗にする方法ってありますか?

この問題を難しくするために、このポップアップはスナップ ビューで異なるサイズになり、中央に配置する必要があります。

何かご意見は?

4

3 に答える 3

2

これが役に立てば幸いです。ポップアップをキャンバスに配置してから、キャンバスを操作してください...

XAML

<Canvas x:Name="myCanvas"
            HorizontalAlignment="Center"
            Height="127"
            VerticalAlignment="Center"
            Width="191"/>
    <Button Content="myButton"
            Height="100"
            Width="100"
            Click="myButton_Click"/>

C#

 private void myButton_Click(object sender, RoutedEventArgs e)
    {
        Popup myPopup = new Popup();
        myPopup.IsOpen = true;

        TextBox myTextbox = new TextBox();
        myTextbox.Text = "Your Message Here";

        myPopup.Child = myTextbox;

        myCanvas.Children.Add(myPopup);
    }

楽しんでみてください...

于 2012-09-01T10:56:39.397 に答える
1

また、次のコードを xaml.cs (コード ビハインド) ファイルに追加しました。

(以前に投稿した xaml を参照してください)

次に、テスト ボタンの _Tapped イベントを以下の myPopup() 関数に接続します。

メッセージを中央に配置するための Stackpanel のこつなどはまだよくわかりませんが、そこまで来ています!

    async void messageBox(String msg)
    {
        MessageDialog dialog = new MessageDialog(msg,"Alert");
        await dialog.ShowAsync();
    }

   private void pButton_Clicked(object sender, RoutedEventArgs e)
    {
        PLPopup.IsOpen = false;

        String str = pInputBox.Text;

        hidePopup();

        messageBox(str);
    }

    void hidePopup()
    {
        pCanvas.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
        pStackPanel.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
        pText.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
        pInputBox.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
        pButton.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
    }

    void showPopup()
    {
        pCanvas.Visibility = Windows.UI.Xaml.Visibility.Visible;
        pStackPanel.Visibility = Windows.UI.Xaml.Visibility.Visible;
        pText.Visibility = Windows.UI.Xaml.Visibility.Visible;
        pInputBox.Visibility = Windows.UI.Xaml.Visibility.Visible;
        pButton.Visibility = Windows.UI.Xaml.Visibility.Visible;
    }

    private void myPopup(object sender, RoutedEventArgs e)
    {
        Brush myBrush = new SolidColorBrush(Windows.UI.Colors.Black);

        topAppBar.IsOpen = false;
        bottomAppBar.IsOpen = false;

        myBrush.Opacity = .5;

        PLPopup = new Popup();
        PLPopup.IsOpen = true;

        //PLPopup.Child = myTextbox;

        pCanvas.Background = myBrush;
        pCanvas.Children.Add(PLPopup);

        pCanvas.Width = this.ActualWidth;
        pCanvas.Height = this.ActualHeight;

        showPopup();
    }
于 2013-03-13T20:33:22.187 に答える