我想在 TabControl 中的第一个和最后一个 TabItems 上设置样式,并在 TabItems 的可见性更改时更新它们。我看不到使用触发器的方法。
我们追求的是这样的:
| >> > |
而 TabItems 的可见性是由绑定(bind)决定的。
我确实让它在代码中工作。在 TabItem 可见性更改时,通过 TabItems 枚举,直到找到第一个可见的。在那个上设置样式。对于所有其他可见的 TabItem,将它们设置为尖头样式(这样以前第一个可见的现在是尖头的)。然后从头开始,直到找到一个可见的 TabItem 并在该选项上设置最后一个样式。 (这也让我们解决了 TabControl 的问题,如果没有选择任何可见的 TabItem,它将显示不可见的 TabItem 的内容。)
毫无疑问,我可以对我的方法进行改进,但我不相信这是正确的方法。
你会如何处理这个问题?
最佳答案
抱歉,到目前为止,您能否更好地解释一下,我已将您的问题解释为:
当在选项卡控件的开头和结尾在选项卡项目上更改可见性时,请应用特定的样式 - 即,如果它滚动看不到 View ,然后更改样式?
如果是这样,那么当您添加 TabItems(以编程方式或在 wpf 中)时,您将需要在您希望处理的 TabItems 上实现 IsVisibleChanged 事件处理程序(即第一个和最后一个或全部?)
public Window1()
{
InitializeComponent();
this.myTabItem.IsVisibleChanged += new DependencyPropertyChangedEventHandler(myTabItem_IsVisibleChanged);
}
private void myTabItem_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
myTabControl.Items[0].Style = FindResource("MyTabItemStyle") as Style;
}
如果您以编程方式将选项卡项添加到控件中,这很简单... :)
关于.net - 在 TabControl 的第一个和最后一个可见 TabItem 上设置样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/203358/