我正在Visual Studio上为UWP制作一个应用程序,该应用程序使用Windows UI库作为选项卡视图组件。我遵循the documentation,它提供了以下代码供用途:
示例:<muxc:TabView AddTabButtonClick="TabView_AddTabButtonClick" TabCloseRequested="TabView_TabCloseRequested"/>
c编号:
// Add a new Tab to the TabView
private void TabView_AddTabButtonClick(muxc.TabView sender, object args)
{
var newTab = new muxc.TabViewItem();
newTab.IconSource = new muxc.SymbolIconSource() { Symbol = Symbol.Document };
newTab.Header = "New Document";
// The Content of a TabViewItem is often a frame which hosts a page.
Frame frame = new Frame();
newTab.Content = frame;
frame.Navigate(typeof(Page1));
sender.TabItems.Add(newTab);
}
// Remove the requested tab from the TabView
private void TabView_TabCloseRequested(muxc.TabView sender, muxc.TabViewTabCloseRequestedEventArgs args)
{
sender.TabItems.Remove(args.Tab);
}
我把这些代码添加到我的项目中,乍一看,它看起来很正常。然而,当尝试交互时,却出现了问题。我只能在“+“图标的最底部边缘单击,才能创建一个新的标签页。我也无法退出任何标签页或与它们交互。
这是我的问题
https://im7.ezgif.com/tmp/ezgif-7-565b1f0b4531.gif
有人能解决这个问题吗?
谢谢你的帮助
1条答案
按热度按时间e4yzc0pl1#
您需要创建一个TabStripHeader和TabStripFooter。TabStripHeader的子项是Grid,并将名称设置为
ShellTitlebarInset
,TabStripFooter的子项是Grid,并将名称设置为CustomDragRegion
,将两者的背景设置为Transparent
。使用
CustomDragRegion
作为标题栏。类似示例:-
和C#示例:-
***注意:***要确保标题栏中的选项卡不被 shell 内容遮挡,您必须考虑左右重叠。在LTR布局中,右插入包括标题按钮和拖动区域。在RTL中则相反。
SystemOverlayLeftInset
和SystemOverlayRightInset
值表示物理左和右,因此在RTL中也要反转这些值。单击此处获取***更多信息***