UWP中的页面SplitView控件的宽度有限

时间:2016-03-21 21:34:21

标签: win-universal-app

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

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

Original Windows 10 calculator app enter image description here

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

1 个答案:

答案 0 :(得分: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区域而言,我已经检查过模板并且没有看到任何会限制它的最小尺寸,除了Pane的ColumnDefinition

以下是提取的SplitView模板的片段:

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

我注意到使用绑定ColumnDefinition1的{​​{1}},在测试TemplateSettings.OpenPaneLength后,它似乎尊重内容。

以下是我将OpenPaneLength设置为0后使用GitHub仓库获得的调试输出

OpenPaneLength="0"