如何调整ContentDialog的大小以使用活动窗口中的大部分空间

时间:2019-03-04 20:01:13

标签: uwp

我希望ContentDialog随应用程序窗口调整大小,并使用托管窗口的大部分空间(例如80%)。

我尝试使用以下代码完成此操作,但是它不起作用:

        var windowSize = CoreWindow.GetForCurrentThread().Bounds;
        ContentDialog cd = new ContentDialog();
        {
            Width = windowSize.Width * .8,
            Height = windowSize.Height * .8,
            Content = new NewEditPage(),
            FullSizeDesired = true
        }
        await cd.ShowAsync();

我需要ContentDialog随窗口调整大小,以便用户缩小窗口时,ContentDialog应该更新以继续保持80%的高度/宽度。

2 个答案:

答案 0 :(得分:0)

您要先覆盖ContentDialog控件的默认样式。

您可以从“ https://msdn.microsoft.com/en-us/library/windows/apps/mt299120.aspx”中看到以下定义

<x:Double x:Key="ContentDialogMinWidth">320</x:Double>
<x:Double x:Key="ContentDialogMaxWidth">548</x:Double>

答案 1 :(得分:0)

我通过以下方法实现了最大宽度:

        EditCartItemDialog ObjectEditCartDialog = new EditCartItemDialog(TempCartItem,_list_cart_items);
        ObjectEditCartDialog.MinWidth = this.ActualWidth;
        ObjectEditCartDialog.MaxWidth = this.ActualWidth;

这里EditCartItemDialog是一个ContentDialog。 您还可以通过以下方法达到最大高度

        ObjectEditCartDialog.MaxHeight = this.ActualHeight;
        ObjectEditCartDialog.MaxHeight = this.ActualHeight;

如果用户缩小窗口,它将自行调整。