WPF中tabControl如何切换TabItem

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF中tabControl如何切换TabItem相关的知识,希望对你有一定的参考价值。

我用xaml里建立了一个TabContral,TabConral里面有三个TabItem,然后监听TabControl的SelectionChaged事件,但是运行起来后,点击其他页根本不切换,我打断点发现除了刚运行时触发selectionchaged实践,以后单击其他页根本不触发,求高手指导这个是怎回事?

参考技术A 我试过了是要触发的呀。追问

怎触发,能来段完整点的代码不?

追答

你说你的代码吧。

参考技术B 需要触发才行,具体代码可以上CSDN上查找。

如何将自定义控件派生的 TabItem 添加到 WPF 中的 TabControl?

【中文标题】如何将自定义控件派生的 TabItem 添加到 WPF 中的 TabControl?【英文标题】:How to add custom-control-derived TabItem to TabControl in WPF? 【发布时间】:2011-01-28 05:15:21 【问题描述】:

我想拥有自己的基本 TabItem 类并使用派生自它的其他类。

我在 MyNs 命名空间中这样定义基类:

public class MyCustomTab : TabItem

    static MyCustomTab()
    
        DefaultStyleKeyProperty.OverrideMetadata(typeof(MyCustomTab), new  FrameworkPropertyMetadata(typeof(TabItem)));
    

这就是我为继承它的类所做的:

MyNs 命名空间中的代码隐藏:

public partial class ActualTab : MyCustomTab

    public ActualTab()
    
        InitializeComponent();
    

XAML:

<MyCustomTab x:Class="MyNs.ActualTab"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>

</Grid>
</MyCustomTab>

我得到的错误是“XML 命名空间'http://schemas.microsoft.com/winfx/2006/xaml/presentation'中不存在标签'MyCustomTab'”。如果我在 XAML 中使用 TabItem 标记,则错误表示无法定义不同的基类。

如何解决这个问题?

【问题讨论】:

【参考方案1】:

好吧,我傻了,应该是这样

<MyNs:MyCustomTab x:Class="MyNs.ActualTab"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:MyNs="clr-namespace:MyNs">
<Grid>

</Grid>
</MyNs:MyCustomTab>

【讨论】:

以上是关于WPF中tabControl如何切换TabItem的主要内容,如果未能解决你的问题,请参考以下文章

WPF Adorner 在TabControl切换TabItem时消失

wpf 实现多个选项卡左右移动

如何将自定义控件派生的 TabItem 添加到 WPF 中的 TabControl?

wpf中TabControl的TabItem如何平分宽度,让他平均分布在整个面板中

放置在 tabcontrol 的第二个 tabitem 中的数据网格的 WPF-'Index out of Range' 错误(但如果放置在第一个 tabitem 中,它工作正常)

WPF TabControl 覆盖 TabItem 背景?