2012-02-26 28 views
3

私はWPF TabControlTabItem秒の左側にある程度のマージンを追加したいと思います。私は簡単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

ラップパネル(又はグリッド、又は境界)におけるタブコントロールパネル(又はグリッド、または境界)のMarginプロパティを設定します。

+0

が動作しません。

の代替には、例えば、あなた自身のTabControlを導出し、コードビハインドで余白を変更することです。私はタブのコンテンツの位置を保持し、タブだけを移動したい。 – Tower

関連する問題