在我的UWP应用中,我试图使后退按钮进入标题栏,这是我过去做过的很多次。这次,我面临的麻烦是默认标题栏似乎并没有消失,而是悬停在我的按钮上,因此我无法按下它。我尝试创建带有边距的自定义标题栏,但是并没有解决问题。这是标题栏的扩展...:
var coreTitleBar = CoreApplication.GetCurrentView().TitleBar;
coreTitleBar.ExtendViewIntoTitleBar = true;
...以及自定义标题栏:
var titleBarGrid = new Grid()
{
Background = new SolidColorBrush(Colors.Transparent),
HorizontalAlignment = HorizontalAlignment.Stretch,
VerticalAlignment = VerticalAlignment.Top,
Height = 48,
Margin = new Thickness(50, 0, 150, 0),
};
Window.Current.SetTitleBar(titleBarGrid);
这些正在App.xaml.cs中设置。
如何删除/覆盖默认标题栏?
答案 0 :(得分:0)
问题是您将titleBarGrid
的背景色设置为Transparent
。尽管这是一种完全透明的颜色,但是对于命中测试,它仍然是“纯色”。如果要确保点击Grid
,请不要完全设置Background
。
我还认为SetTitleBar
的参数应该是已经属于页面XAML树的一部分的控件,因此您应该首先将Grid
添加到页面上的某个位置。最简单的解决方案是直接在XAML中创建。
最后,如果要保持纯色背景,还可以观察从Inset
事件获得的标题栏的CoreTitleBar.LayoutMetricsChanged
值。 SystemOverlayLeftInset
属性将告诉您应该在左侧添加多少填充,以便内容不会覆盖标题栏的后退按钮。
最后-我想提一下,最新的设计指南不鼓励在标题栏中使用后退按钮,而是建议您在应用程序用户界面中实施后退按钮。参见documentation:
以前,UWP应用使用AppViewBackButtonVisibility进行向后导航。将继续支持该API以实现向后兼容性,但我们不再建议您依赖标题栏的后退按钮。相反,您的应用应绘制自己的应用内后退按钮。
后退按钮应该是您应用内用户界面的一部分,因为否则,当Windows 10中发布“设置”功能时,后退按钮栏会显示在您的应用程序顶部。
答案 1 :(得分:0)
我通过将settitlebar(grid)
移到InitializeComponent()
上方以某种方式修复了它。马丁(Martin)-如果我不设置颜色,则该窗口将不可拖动,因此除了最小化按钮的默认左侧外,没有其他可拖动的东西。我制作为标题栏的网格的边距不与我的任何按钮重叠。