2010-01-21 91 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部分的文章,它可以讓您通過重新模板選項卡控件。