3

我在弹出控件中放置了一个网格。我希望网格会根据 windows phone 8 应用程序的 3 种不同布局大小(480 × 800、768 × 1280、720 × 1280)自动调整大小。

但似乎我必须明确设置网格的宽度和高度,因为它会根据子控件大小重新调整自身大小,而我希望弹出框在所有三种分辨率的屏幕顶部都显示为完整.

有什么帮助吗?

4

1 回答 1

29

让全屏弹出窗口在 WP8 上工作的最简单方法是将子宽度和高度设置为手机当前的逻辑分辨率。您可以在此处阅读有关WP8 多分辨率 zen 的更多信息,并在此处了解有关WP8 多分辨率 API 的更多信息。

private void Button_Click_1(object sender, RoutedEventArgs e)
{
    var myPopup = new Popup()
    {
        Child = new Border()
        {
            Child = new TextBlock()
                    {
                        Text = "Hello World!"
                    },
            Height =  Application.Current.Host.Content.ActualHeight,
            Width =  Application.Current.Host.Content.ActualWidth,
            Background = new SolidColorBrush(Colors.Green)
        }
    };

    this.LayoutRoot.Children.Add(myPopup);
    myPopup.IsOpen = true; 
}

这段代码有点过分了,因为 shell 项(例如 SystemTray、AplicaitonBar 等)会占用渲染区域的空间。

这是上面在 WXGA 模拟器中执行的代码片段的打印屏幕:

WXGA 上的全屏弹出窗口

这是上面在 720P 模拟器中执行的代码片段: 720P 全屏弹出

于 2012-12-25T22:51:53.897 回答