读取TabControl.Items列表中的第一个和最后一个元素不起作用,因为可以将一个非TabItem控件(例如Button)添加到TabControl,然后将其写入TabControl.Items列表,从而可以不要转换为TabItem。如果我向TabControl添加一个Button,TabControl会自动创建一个TabItem,但我不知道如何访问它。
我希望这个问题是可以理解的...... 我很感激任何答案!
答案 0 :(得分:0)
我使用“ItemContainerStyleSelector”解决了这个问题,它接收了我的TabControl的构造函数实例。然后它可以在SelectStyle方法中遍历它的父项,并将每个项与由制表符控件传递给它的项进行比较。它看起来像这样:
public override Style SelectStyle(object item, DependencyObject container)
{
Style leftStyle = Application.Current.FindResource(Constants.TabItemLeftStyleKey) as Style;
Style normalStyle = Application.Current.FindResource(Constants.TabItemNormalStyleKey) as Style;
Style rightStyle = Application.Current.FindResource(Constants.TabItemRightStyleKey) as Style;
if (item.Equals(this.parent.Items[0]))
{
return leftStyle;
}
else if (item.Equals(this.parent.Items[this.parent.Items.Count - 1]))
{
return rightStyle;
}
else
{
return normalStyle;
}
}