2012-02-26 107 views
3

我想在WPF TabControlTabItem s的左側添加一些餘量。如果我使用直接的Margin="4"方法,則保證金將應用於每個TabItem,而不是將整個選項卡項目容器向右移動一點。例如,默認情況下,它看起來像是右側2像素的標籤,我想增加它以便我可以在標籤的左側放置一個按鈕。如何爲WPF TabControl選項卡添加邊距?

回答

8

您將需要爲TabControl定義一個新模板。

example template on MSDN

如果你使用這個模板,你可以改變HeaderPanel的保證金,以達到你想要的東西。

如果您需要查看正在使用的真實模板,可以使用混合來提取模板。然後你可以修改它。

另一種方法是派生自己的TabControl和修改代碼隱藏的利潤,例如:

public class MyTabControl : TabControl 
{ 
    public override void OnApplyTemplate() 
    { 
     base.OnApplyTemplate(); 

     var panel = Template.FindName("HeaderPanel", this) as FrameworkElement; 

     if(panel != null) 
     { 
      panel.Margin = new Thickness(20,2,2,2); 
     } 
    } 
} 
1

將TabControl包裝在面板(或網格或邊框)中,並設置面板(或網格或邊框)的邊距屬性。

+0

這是行不通的,因爲它會將整個'TabControl',而不僅僅是標籤項目。我想保留標籤內容的位置,並只移動標籤。 – Tower 2012-02-26 10:40:20

相關問題