我对Microsoft的GitHub仓库的Title'Bar示例有个疑问( https://github.com/JustinXinLiu/FullScreenTitleBarRepo/tree/master/FullScreenTitleBarRepo ):在AddCustomTitleBar函数中,有一行:
customTitleBar.EnableControlsInTitleBar(areControlsInTitleBar);
EnableControlsInTitleBar在这里:
public void EnableControlsInTitleBar(bool enable) { if (enable) { TitleBarControl.Visibility = Visibility.Visible; // Clicks on the BackgroundElement will be treated as clicks on the title bar. Window.Current.SetTitleBar(BackgroundElement); } else { TitleBarControl.Visibility = Visibility.Collapsed; Window.Current.SetTitleBar(null); } }
但如果我不调用函数(EnableControlsInTitleBar),示例仍然运行良好
在Justin XL示例中( https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/TitleBar )确实有这样的用法:
Window.Current.SetTitleBar(BackgroundElement);
这使我感到困惑,希望有人能给我一个解释,谢谢。
“但是如果我不叫功能(EnableControlsInTitleBar),样本仍然运作良好”
我不认为这是事实。 有几个地方会叫这个功能,所以我觉得你没有注释掉所有这些。
以下行用于让您的自定义标题栏可以处理输入(例如鼠标点击),如默认标题栏。
Window.Current.SetTitleBar(BackgroundElement);
以MS样本为例。 如果我们启动MS样本没有任何改变,您可以执行以下操作:
选择“ 2)自定义绘图 ” – >选中“将视图扩展到标题栏” – >选中“在标题栏中启用控件” – >您将看到以下标题栏,并且可以选中标题栏上的复选框。
但是如果我们注释掉SetTitleBar调用,复选框将不响应您的鼠标点击。