我正在尝试在 WPF 选项卡中实现,其行为类似于 IE9 中的选项卡。当您在最后许多选项卡中打开时,它们会变得越来越小,并且按钮也显示在左侧和右侧,用于在选项卡之间滚动。
任何帮助都会非常感激。
我正在尝试在 WPF 选项卡中实现,其行为类似于 IE9 中的选项卡。当您在最后许多选项卡中打开时,它们会变得越来越小,并且按钮也显示在左侧和右侧,用于在选项卡之间滚动。
任何帮助都会非常感激。
像这样创建两个主选项卡(主选项卡是这两个选项卡)
<TabItem Header="«" Name="LeftTab"/>
<TabItem Header="»" Name="RightTab"/>
将它们的可见设置为隐藏。现在添加您想要的所有选项卡(使用 c# 代码或 xaml),但不要忘记为您添加的所有选项卡设置标签,如下所示
<TabItem Header="new" Name="tiNew" Tag="1"/>
<TabItem Header="edit" Name="tiEdit" Tag="2"/>
...
现在,当标签数量超出正常水平并且您无法在一页中显示全部内容时:
1.更改两个主选项卡的可见性..
bool is_Left_Right_tabVisible = false;
if (tabControl1.Items.Count > 8)
{
LeftTab.Visibility = System.Windows.Visibility.Visible;
RightTab.Visibility = System.Windows.Visibility.Visible;
is_Left_Right_tabVisible = true;
}
else
{
LeftTab.Visibility = System.Windows.Visibility.Hidden;
RightTab.Visibility = System.Windows.Visibility.Hidden;
is_Left_Right_tabVisible = false;
}
2.隐藏所有额外的选项卡,只显示其中一些(例如:显示两个主选项卡并显示标签为 1-8 的选项卡)
3.如果用户单击主选项卡(左侧或右侧选项卡)隐藏一个选项卡并显示另一个选项卡(例如:当用户单击右侧隐藏的 NO 1 和可见的 No 5 时,您有lefttab-1-2-3-4-righttab和专注于 5)
private void RightTab_MouseUp(object sender, MouseButtonEventArgs e)
{
if (is_Left_Right_tabVisible)
{
TabItem ti = sender as TabItem;
if (ti.Name == "RightTab")
{
//find right tab must set to visible
int Showtabindex = 0;
var t1 = tabControl1.Items.OfType<TabItem>().Where(x => x.Visibility == System.Windows.Visibility.Hidden);
foreach (var item in t)
{
if (((int)item.Tag) > Showtabindex)
Showtabindex = (int)item.Tag;
}
//find left tab must go invisible
int Hiddentabindex = Showtabindex;
var t2 = tabControl1.Items.OfType<TabItem>().Where(x => x.Visibility == System.Windows.Visibility.Visible);
foreach (var item in t2)
{
if (((int)item.Tag) < Hiddentabindex)
Hiddentabindex = (int)item.Tag;
}
(tabControl1.Items[Hiddentabindex] as TabItem).Visibility = System.Windows.Visibility.Hidden;
(tabControl1.Items[Showtabindex] as TabItem).Visibility = System.Windows.Visibility.Visible;
//you can create drag and drop for tabs then user can change tab TAG
}
else if (ti.Name == "LeftTab")
{
//.....
}
}
}
我知道这有点难,但是当我创建一个好的用户控件时,我感觉很好。但是不要忘记在这个用户控件中我们使用 tabcontrol 我们可以从第一个开始创建自定义选项卡控件并且不要使用这个 tabcontrol。
您还可以为选项卡创建动画,当那些改变不透明度和移动动画会很好检查这篇文章