应用程序标题栏消失 - UWP应用程序

5
我有一款UWP应用程序(发布在Windows/Microsoft Store中),应用程序标题栏通常是这样的:enter image description here 我正在测试我的应用程序(以测试流畅设计系统),我进行了一些更改,但没有注意到,因为现在它看起来像这样:enter image description here 我的应用程序名称消失了,并且页面标题中包含的省略号(...)也不显示。如何解决这个问题?

@StefanWickMSFT 我只是在使用Template10,但我一直在使用它,而且我没有遇到过这个问题。奇怪的是,我已经分析了我的代码,但找不到任何可能导致这种情况的不同之处! - Fernando Sousa
由于我们不知道您的应用程序在哪里将其设置为true,因此我无法回答这个问题。为了测试,我建议首先添加一个按钮将其设置为false,以确保它有效,然后进一步缩小启动路径中放置它的位置。再次强调:是否在新的空白项目中重现此问题?如果没有,则说明您的项目中有某些设置导致了这个问题。如果您不分享它,我们只能进行猜测。 - Stefan Wick MSFT
@StefanWickMSFT 谢谢!在这个例子中,TitleBar.ExtendViewIntoTitleBar = false 在哪里? - Fernando Sousa
@StefanWickMSFT 抱歉,但我找不到任何东西 :( 第36行是空的! - Fernando Sousa
1
实际上是第37行 :-) - 这里是直接链接:https://1drv.ms/u/s!AovTwKUMywTNnPI41WznhoDd8W0Nlg - Stefan Wick MSFT
显示剩余9条评论
2个回答

5
发生了和我一样的事情,正是当我在测试流畅设计系统时!为了重现这个问题,只需添加以下内容:
// Extend acrylic
extendAcrylicIntoTitleBar(); to OnLaunched at App.xamel.cs

然后将以下代码添加到App.xamel.cs文件中。
/// Extend acrylic into the title bar. 
private void extendAcrylicIntoTitleBar()
{
CoreApplication.GetCurrentView().TitleBar.ExtendViewIntoTitleBar = true;
ApplicationViewTitleBar titleBar = 
ApplicationView.GetForCurrentView().TitleBar;
titleBar.ButtonBackgroundColor = Colors.Transparent;
titleBar.ButtonInactiveBackgroundColor = Colors.Transparent;
}

接下来,您需要使用Ctrl + .键来修复缺失的using。

此时,标题栏会消失。即使删除extendAcrylicIntoTitleBar()函数也无法解决问题!

如果我删除以下内容,则标题栏将再次出现

using Windows.UI;
using Windows.UI.ViewManagement;
using Windows.ApplicationModel.Core;

我不确定这是否是一个问题。这似乎是流畅设计的工作方式。

以上测试是根据https://learn.microsoft.com/en-us/windows/uwp/design/style/acrylic#acrylic-theme-resources进行的。


5
非常感谢!我只需简单地将此代码翻译为中文:Windows.ApplicationModel.Core.CoreApplication.GetCurrentView().TitleBar.ExtendViewIntoTitleBar = false;,并使其更加通俗易懂,但不改变原来的意思,然后返回翻译的结果即可。 - Fernando Sousa
通过遵循@FernandoSousa的做法,我仍然在栏顶部的3个右侧图标中有错误的背景颜色。我通过卸载由Visual Studio构建的应用程序并重新构建它来修复它。 - Damien
一旦你将它设置为true,它似乎会在某个设置中保持并持续存在,即使应用程序已经结束。不得不卸载似乎支持这个理论,在这一点上该设置将消失。我刚刚将其设置为false,这也可以工作(但似乎不应该这样做)。 - b.pell

4
最后一个值被缓存在注册表中。尝试删除它:
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\SystemAppData\<GUID_PublisherID>\PersistedTitleBarData\<GUID_PublisherID>!App]
"AppVersion"=hex(b):00,00,00,00,00,00,01,00
"ExtendViewIntoTitleBar"=dword:00000001

同时还保存了最后一个窗口位置和启动画面信息。


输入图像描述


在调试时设置ExtendViewIntoTitleBar = false并没有解决问题。感谢你的提示! - Dominic Jonas
这绝对是可怕的框架设计。天哪,为什么要“保存”?难道不应该由开发者来决定应用程序的设计选择吗?但感谢您的修复。我一直在这里尝试Windows 11应用程序设计,可能会触发这个问题。 - Jonas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接