c# - UWP MultipleView 示例菜单疯狂
问题描述
我有一个基于 Microsoft MultipleView 示例实现辅助视图的应用程序。它使用 NuGet 包 Microsoft.UI.XAML 提供的菜单栏,我注意到一个非常奇怪的事情,如果您从辅助视图显示主视图,但只有当您使用关闭主视图时,菜单才会停止工作事先 X。
我想确保我没有做任何太愚蠢的事情,所以我从 GitHub 重新下载了 MultipleView 示例,然后执行以下操作来实现菜单栏
1) 在管理 NuGet 包中,我将 Microsoft .netCore 更新到 v6.2.10
2) 我浏览了 Microsoft.UI.XAML 并安装它 (v2.4.2)
3)在app.aml之后
<ResourceDictionary Source="/Styles/Styles.xaml"/>
添加
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
4) 在 mainpage.xaml
后
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
添加
xmlns:Custom="using:Microsoft.UI.Xaml.Controls"
5) 在 mainpage.xaml 之后
<TextBlock x:Name="Header" Text="Universal Windows Platform sample" Style="{StaticResource TagLineTextStyle}" Margin="0,15,0,0" />
添加
<Custom:MenuBar x:Name="theMenuBar">
<Custom:MenuBarItem x:Name="TestMenu1" Title="TestA">
<MenuFlyoutItem Text="TestA Item" Click="TestA_Click"></MenuFlyoutItem>
</Custom:MenuBarItem >
<Custom:MenuBarItem x:Name="TestMenu2" Title="TestB">
<MenuFlyoutItem Text="TestB Item" Click="TestB_Click"></MenuFlyoutItem>
</Custom:MenuBarItem >
<Custom:MenuBarItem x:Name="TestMenu3" Title="TestC">
<MenuFlyoutItem Text="TestC Item" Click="TestC_Click"></MenuFlyoutItem>
</Custom:MenuBarItem >
</Custom:MenuBar>
6)在 MainPage.xaml.cs 添加
private void TestA_Click(object sender, RoutedEventArgs e)
{
}
private void TestB_Click(object sender, RoutedEventArgs e)
{
}
private void TestC_Click(object sender, RoutedEventArgs e)
{
}
现在构建并运行(我在使用 X64 本地的 Windows 10 笔记本电脑上运行)
如果您执行上述操作,您应该会在通用 Windows 平台示例文本块之后的顶部看到三个菜单项,如果您单击菜单,菜单中的项目将出现
单击“创建新视图”,然后在“打开视图”中选择它,然后单击“将所选视图显示为独立视图”。
返回主页面,单击 X 关闭主窗口。辅助窗口现在将位于最顶部,并在辅助窗口中单击“切换到主视图”。这将用主页面替换辅助框架的内容
您可能需要重复该过程(单击创建新视图,选择它,单击“将所选视图显示为独立视图。返回主视图,用 X 关闭,然后单击“切换到主视图”
现在尝试操作菜单项。
我发现它们根本不起作用。单击它们不会像以前那样飞出该项目。
真正奇怪的是,有时我发现这三个菜单中的一些会在第一次关闭/“切换到主视图”迭代后停止工作,而其他时候需要第二次通过才不起作用。但是一旦他们停止工作,他们就再也不会开始工作了
现在,我在这里并没有真正编写太多代码,只是添加了带有项目的菜单栏,所以我很确定这不是我所做的。(除非某处记录了 Microsoft.UI.Xaml.Controls 不适用于多个视图)。
我尝试过的一件事是更改 GoToMain_click 例程以尝试独立窗口
即替换
await ApplicationViewSwitcher.switchAsync(mainViewId);
至
var viewShown = await ApplicationViewSwitcher.tryShowAsStandaloneAsync(mainViewId);
在切换到主视图时,辅助视图应该保持打开状态对我来说更有意义。但是,它并没有解决问题,并且在我对 MenuA 和 MenuC 的测试中停止工作,但 MenuB 仍然工作并在第一次通过时显示它是弹出项,但是第二次迭代并且全部停止工作
处理视图的所有代码都是 Microsoft MultipleView 示例......我不确定问题出在该示例代码还是 NuGet 包中的菜单栏。
任何人都可以阐明并希望给我一个解决方法来重新激活菜单吗?
解决方案
推荐阅读
- javascript - 为 D3 Vers 6 堆叠条形图添加间距和交互性
- android - 为什么 Composable 列表在 Jetpack Compose 中不起作用?
- java - 我有 java.lang.reflect.InvocationTargetException 的问题
- html - 如何在 Chrome 中的每个页面上重复一个 TALL 表头?
- html - 不同的电子邮件客户端和不同的阅读格式如何处理电子邮件中的 CSS?
- java - 为什么 stroke() 的 alpha 参数不会导致任何内容被绘制?
- r - Mapview pointsize via cex 不是固定大小的映射子集或更新的数据
- regex - 正则表达式在两个文本之间提取文本并保存文本
- r - 你如何计算 glm.cluster 模型的平均边际效应?
- python - Django DetailView + 从 Ajax 表单中删除项目