【问题标题】:Page inside UWP SplitView control has a limit to its WidthUWP SplitView 控件内的页面对其宽度有限制
【发布时间】:2016-03-22 07:06:38
【问题描述】:

正如这个 GitHub 问题 (https://github.com/eloekset/UWPSplitViewIssue/issues/1) 中所述,我尝试制作一个 UWP 计算器应用程序,它可以像 Windows 10 中的内置计算器一样小。但是在添加一个 SplitView 控件以获得一个汉堡按钮和一个侧窗格菜单,SplitView.Content 中托管的页面不能小于 320 像素。

我觉得这很奇怪,因为内置计算器显然可以小到 202x357 像素,同时它还有一个汉堡按钮和一个侧窗格菜单。我假设它是使用与所有 UWP 应用程序都可以访问的相同的 SplitView 控件构建的,所以我一定做错了什么。

为了演示这个问题,我创建了一个具有相同问题的简单项目并将其发布在 GitHub 上:https://github.com/eloekset/UWPSplitViewIssue

【问题讨论】:

    标签: win-universal-app


    【解决方案1】:

    您可以通过在应用的 OnLaunched 方法中使用 SetPreferredMinSize 来缩小窗口。

    这是一个例子

    protected override async void OnLaunched(LaunchActivatedEventArgs e)
    {
    ...
         var applicationView = ApplicationView.GetForCurrentView();
         applicationView.SetPreferredMinSize(new Size { Width = 202, Height = 357 });
    
        Window.Current.Activate();
    }
    

    允许的最小尺寸为 192x48 EP(有效像素)。 See here for more information.

    就 SplitView.Content 区域而言,我检查了模板,除了窗格的 ColumnDefinition 之外,没有看到任何会限制其最小尺寸的东西

    这是提取的 SplitView 模板中的 sn-p:

    <Grid.ColumnDefinitions>
                <ColumnDefinition x:Name="ColumnDefinition1"
                                          Width="{Binding TemplateSettings.OpenPaneGridLength, FallbackValue=0, RelativeSource={RelativeSource Mode=TemplatedParent}}" />
                <ColumnDefinition x:Name="ColumnDefinition2"
                                          Width="*" />
    </Grid.ColumnDefinitions>
    

    我注意到ColumnDefinition1 正在使用绑定TemplateSettings.OpenPaneLength,在测试OpenPaneLength="0" 之后它似乎尊重内容。

    这是我在将 OpenPaneLength 设置为 0 后使用您的 GitHub 存储库得到的调试输出

    Page Width: 202 and Height: 464
    ContentFrame Width: 202 and Height: 464
    Smallest there is.
    

    【讨论】:

      猜你喜欢
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 2020-01-13
      • 2021-06-05
      • 1970-01-01
      • 2017-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多