【问题标题】:Unable to Enlarge Window Size无法放大窗口大小
【发布时间】:2019-10-16 04:15:19
【问题描述】:

我的应用有一个迷你模式,使用这两行代码进入:

    (Window.Current.Content as Frame).Navigate(typeof(MiniModePage));
    await ApplicationView.GetForCurrentView().TryEnterViewModeAsync(ApplicationViewMode.CompactOverlay, MiniModePage.ViewModePreferences);

这是MiniModePage.ViewModePreferences

    public static Size PageSize { get => new Size(300, Settings.settings.MiniModeWithDropdown ? 900 : 300); }

    public static ViewModePreferences ViewModePreferences
    {
        get
        {
            var pref = ViewModePreferences.CreateDefault(ApplicationViewMode.CompactOverlay);
            pref.CustomSize = PageSize;
            return pref;
        }
    }

MiniModePage 中,我允许通过单击按钮来调整我的应用程序窗口的大小:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        SpinArrowAnimation.Begin();
        Settings.settings.MiniModeWithDropdown = !Settings.settings.MiniModeWithDropdown;
        var size = PageSize;
        ApplicationView.GetForCurrentView().SetPreferredMinSize(size);
        ApplicationView.GetForCurrentView().TryResizeView(size);
    }

问题是,我可以缩小窗口大小,但是当我尝试将窗口大小从 300 * 300 放大到 300 * 900 时,窗口大小并没有改变。它始终保持 300 * 300。

如何让窗口不断调整大小?

我的另一个问题是,300 * 900 的窗口显然没有 1 * 3 的大小比例,如下图所示。我该如何解决?

更多源码:

  1. MiniModePage

  2. MiniModeButton_Click 中输入MiniModePage 的代码是here

【问题讨论】:

    标签: uwp win-universal-app


    【解决方案1】:

    问题是,我可以缩小窗口大小,但是当我尝试将窗口大小从 300 * 300 放大到 300 * 900 时,窗口大小并没有改变。它始终保持 300 * 300。

    请查看SetPreferredMinSize 文档,

    允许的最小尺寸为 192 x 48 有效像素。允许的最大最小尺寸为 500 x 500 有效像素。如果您设置的值超出这些范围,则会强制将其设置在允许的范围内。 (要了解有效像素,请参阅响应式设计 101。)

    所以,请将你的最大高度从 900 修改为 500。

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        SpinArrowAnimation.Begin();
        Settings.settings.MiniModeWithDropdown = !Settings.settings.MiniModeWithDropdown;
        var size = new Size(300,500);
        ApplicationView.GetForCurrentView().SetPreferredMinSize(size);
        ApplicationView.GetForCurrentView().TryResizeView(size);
    }
    

    【讨论】:

    • 那么我应该如何在 300 * 300 和 300 * 900 之间切换我的应用程序?
    • 请在此处查看官方文档hereCompact Overlay dev。 MSDN 上的任何地方都没有列出最小和最大尺寸,所以我不断收到邮件询问尺寸的工作原理。最小尺寸为 150epx x 150epx。最大尺寸为 min(500epx, 窗口所在屏幕宽度的一半) x min(500epx, 窗口所在屏幕高度的一半) 其中epx 是有效像素或缩放像素。
    猜你喜欢
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多