XAML UWP显示全屏弹出窗口、内容对话框或弹出窗口

lskq00tm  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(167)

我需要在我的UWP应用程序中显示一个全屏对话框(在应用程序窗口边界),但似乎不能使它工作。我尝试了:

  • 当FullSizeDesired=“True”时,内容对话框仅显示垂直拉伸
  • 弹出窗口,甚至试图在其后面的代码中设置宽度和高度也不起作用
  • Flyout Placement=“Full”仅垂直拉伸,就像内容对话框一样

真不敢相信我在那上面花了这么多时间
谢谢

1mrurvl1

1mrurvl11#

你有没有试过这样的方法:

var c = Window.Current.Bounds;
var g = new Grid
{
    Width = c.Width,
    Height = c.Height,
    Background = new SolidColorBrush(Color.FromArgb(0x20, 0, 0, 0)),
    Children =
    {
        new Rectangle
        {
            Width = 100,
            Height = 100,
            Fill = new SolidColorBrush(Colors.White),
            Stroke = new SolidColorBrush(Colors.Black),
            StrokeThickness = 3
        }
    }
};
var p = new Popup
{
    HorizontalOffset = 0,
    VerticalOffset = 0,
    Width = c.Width,
    Height = c.Height,
    Child = g
};

p.IsOpen = true; // open when ready

您应该会在屏幕中间看到一个半透明的覆盖层,上面有一个白色矩形。

ikfrs5lh

ikfrs5lh2#

为了使弹出全屏我做了以下。希望这有帮助。
我有一个用户控件,我想显示为弹出窗口。它的名称“URLUserControl”
第1步:UC的UI(仅第一位。不完整代码)

<UserControl>
<Grid>
    <Popup x:Name="MPopup" VerticalAlignment="Center">
        <Grid x:Name="MainGrid">

步骤2:UC构造函数添加以下内容

private void InitURLUserControl()
    {
        MPopup.IsOpen = true;
        Window.Current.SizeChanged += Current_SizeChanged;
        MainGrid.Width = Window.Current.Bounds.Width;
        MainGrid.Height = Window.Current.Bounds.Height;
    }

第三步:

private void Current_SizeChanged(object sender, WindowSizeChangedEventArgs e)
    {
        MainGrid.Width = Window.Current.Bounds.Width;
        MainGrid.Height = Window.Current.Bounds.Height;
    }

上面的代码将帮助弹出窗口成为屏幕的中心,并以全屏大小显示。看看吧。快乐编码!

相关问题