我正在制作一个Windows通用应用程序。
我想创建一个填充屏幕的弹出窗口,如果弹出窗口中的内容大于屏幕,则滚动。
Popup testPopup = new Popup();
StackPanel testStackPanel = new StackPanel();
ScrollViewer testScrollViewer = new ScrollViewer();
testScrollViewer.Background = new SolidColorBrush(Windows.UI.Colors.Green);
testScrollViewer.Height = new GridLength(1, GridUnitType.Star).Value; //this sets the height to one pixel instead of filling the screen.
Button testPopupButton = new Button();
testPopupButton.Content = "click";
testPopupButton.Click += delegate(object sender, RoutedEventArgs e)
{
testPopup.IsOpen = true;
};
Button closePopupButton = new Button();
closePopupButton.Content = "close";
closePopupButton.Click += delegate(object sender, RoutedEventArgs e)
{
testPopup.IsOpen = false;
};
for (int i = 0; i < 20; i++)
{
Button b = new Button();
b.Content = i;
testStackPanel.Children.Add(b);
}
testStackPanel.Children.Add(closePopupButton);
testPopup.Child = testScrollViewer;
testScrollViewer.Content = testStackPanel;
ContentRoot.Children.Add(testPopupButton);
ContentRoot.Children.Add(testPopup);
我创建了一个弹出窗口,其子设置为scrollViewer,scrollViewers内容是一个高于屏幕高度的stackPanel。
如果我手动设置弹出窗口的高度,它会按预期工作。我的问题是让弹出窗口的高度和宽度填满屏幕。单独留下高度会使高度成为内容的大小,从屏幕上移开并且不会滚动。
答案 0 :(得分:2)
您可以使用窗口构造函数中的System.Windows.SystemParameters.MaximizedPrimaryScreenWidth和System.Windows.SystemParameters.MaximizedPrimaryScreenHeight属性设置宽度和高度,如下所示:
public MainWindow()
{
InitializeComponent();
popup.Width = SystemParameters.MaximizedPrimaryScreenWidth;
popup.Height = SystemParameters.MaximizedPrimaryScreenHeight;
}
如果你想使用这种方法。但是,@ pushpraj建议最好的方法来完成您的要求。