如本GitHub问题(https://github.com/eloekset/UWPSplitViewIssue/issues/1)所述,我尝试制作一个UWP计算器应用程序,它可以与Windows 10中的内置计算器一样小。但是在添加SplitView控件以获取汉堡包按钮之后和侧窗格菜单,SplitView.Content内部托管的页面不能超过320像素。
我发现这很奇怪,因为内置计算器显然可以小到202x357像素,同时它还有一个汉堡包按钮和一个侧窗格菜单。我假设它是使用与所有UWP应用程序都可访问的相同的SplitView控件构建的,所以我一定做错了。
为了证明这个问题,我创建了一个包含相同问题的简单项目,并将其发布在GitHub上:https://github.com/eloekset/UWPSplitViewIssue
答案 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"