【发布时间】:2023-04-10 23:50:01
【问题描述】:
如何制作像 Groove Music 这样的TitleBar?它有一个带有应用程序名称的自动后退按钮。此外,它的NavigationViewPane 扩展为TitleBar。
所以我首先添加了:
Windows.ApplicationModel.Core.CoreApplication.GetCurrentView().TitleBar.ExtendViewIntoTitleBar = true;
然后使NavigationView 的后退按钮可见。但是,有一个known issue。基本上,该后退按钮的一部分被某些东西覆盖,使其只能在某处点击。虽然这里提供了solution,但它似乎与AppViewBackButton 没有很好的兼容性(例如我只希望AppViewBackButton 是蓝色的)并且我无法使其工作。
然后我尝试使用SystemNavigationManager.GetForCurrentView().AppViewBackButton,但该按钮似乎与 Groove Music 不同,因为该按钮与NavigationView 中的按钮很好地对齐。我可以重新设计NavigationViewStyle 以使其适合,但这需要大量工作(如何获得 AppBackButton 的大小或如何自定义它?)。而且NavigationView的OpenPane有阴影但是我没找到原来的样式。
有没有更好的方法?
【问题讨论】:
-
嗨 Seaky,可以分享屏幕截图来解释 后退按钮的一部分被某些东西覆盖,使其只能在某处点击。?
-
@NicoZhu-MSFT 对不起,因为我没有研究那个解决方案,所以我不能轻易地发布截图。但是我的意思是如果我在TitleBar中有一个自定义按钮,TitleBar中的区域不能点击,而下面的区域可以。
-
@NicoZhu-MSFT 你好 Nico,我在NowPlayingFullPage 中自定义了一些标题栏。你能明白为什么那个 BackButton 不可点击吗?
-
好的,我会检查的。
-
问题是按钮是可以点击控制的,如果你调用
SetTitleBar方法,按钮会失效。请在NowPlayingFullPage方法中添加CoreApplication.GetCurrentView().TitleBar.ExtendViewIntoTitleBar = true;并删除Window.Current.SetTitleBar(EmptyTitleBar);。
标签: c# xaml uwp win-universal-app