2010-01-21 114 views
1

我正在为WPF tabcontrol创建一个新的控件模板。WPF TabControl ControlTemplate

我的情况是,控件中会有一些标签,用户将能够添加和删除这些标签。

理想情况下,我想沿着Firefox/IE选项卡的行创建一些内容,从而在选项卡标题内有一个删除按钮以删除当前选项卡。

另外,稍微复杂一些,我想要一个新的标签按钮,它总是在tabcontrol的最后一个标签的右侧。

任何人都可以指出我的方向吗?我见过使用Blend来创建新模板的人的例子。到目前为止,我一直没有使用,但只是下载了试用版...

谢谢。

回答

1

的 “新标签” 按钮,就比较复杂了。主要问题是您希望它显示在ItemsPresenter/TabPanel的正确位置,但它不是驱动ItemsPresenter的集合的一部分,因为它实际上不是TabItem。过去我通过修改TabControl自身的ControlTemplate来将按钮粘贴到ItemsPresenter的右侧,但在自按钮失效后突变到第二行的情况下可能会出现奇怪的外观是TabPanel布局的一部分。

0

如何使用TemplateSelector?

创建两个不同的模板 - 一个用于标准标签项目,另一个用于“新标​​签按钮”。两者实际上都是选项卡项目,但具有不同的模板,具体取决于您的TemplateSelector中的条件。

要实现不同的行为/识别您的“新标签按钮”,只需在您的代码中检查分配了哪个模板。

希望能有所帮助。

1

请尝试下列文章;他们都帮助我开始编写自定义选项卡控件。

1. Code Project: An Extended Tab Control

2. WPF TabControl Series

第一个链接提供了一个完整的定制解决方案这是非常好的,但我发现在一开始有点令人生畏。第二个链接提供了一个4部分的文章,它可以让您通过重新模板选项卡控件。