.net - 在 TabControl 的第一个和最后一个可见 TabItem 上设置样式

标签 .net wpf xaml tabcontrol tabitem

我想在 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/

相关文章:

c# - 使用 DependencyProperty 访问 UserControl 代码中的绑定(bind)对象

Xaml 两种方式将文本框绑定(bind)到可观察集合

c# - RadioButton Click 事件在启动时错误地触发

.net - 菜单项触发器不工作

wpf - 如何设置 wpf slider 控件的拇指高度

wpf - 在 Xaml 中动态调整窗口大小

xaml - 如何从 GridViewItem Tap 事件 (XAML) 执行命令

.net - 使用 ExecuteNonQuery 覆盖 SQL Server 中受影响的行?

c# - 如何在 .NET 中将源自类型 A 的对象转换为类型 B?

.net - SQL Server 2008 层次结构数据类型的 NHibernate 映射