WPF Tabcontrolのデフォルトの動作では、タブヘッダーを互いに隣接して配置し、間に空きスペースを配置しません。ヘッダー間のギャップを指定したい場合はどうなりますか?このためのコントロールテンプレートを定義する必要がありますか?私はWFPに比較的慣れていないので、助けていただければ幸いです。
ありがとう
WPF Tabcontrolのデフォルトの動作では、タブヘッダーを互いに隣接して配置し、間に空きスペースを配置しません。ヘッダー間のギャップを指定したい場合はどうなりますか?このためのコントロールテンプレートを定義する必要がありますか?私はWFPに比較的慣れていないので、助けていただければ幸いです。
ありがとう
TabItem のカスタム コントロール テンプレートを定義する必要があると思います。これは、分離のためにスペーサーを使用する TabItem の例です。
<Style
x:Key="SpacedTab"
TargetType="{x:Type TabItem}">
<Setter
Property="Template">
<Setter.Value>
<ControlTemplate
TargetType="{x:Type TabItem}">
<Border
x:Name="Spacer"
Width="Auto"
Height="Auto"
Padding="0 0 5 0"
Margin="0 0 0 0"
BorderBrush="Transparent"
BorderThickness="0">
<Border
x:Name="Border"
MinWidth="150"
Width="Auto"
Height="30"
Background="Gray"
BorderBrush="DarkGray"
BorderThickness="0,0,0,0"
CornerRadius="6,6,0,0"
Cursor="Hand"
VerticalAlignment="Bottom">
<ContentPresenter
x:Name="ContentSite"
TextElement.FontSize="10pt"
TextElement.FontFamily="Arial"
TextElement.Foreground="Black"
VerticalAlignment="Center"
HorizontalAlignment="Center"
ContentSource="Header"
Margin="8,3,8,3"
Width="Auto"
Height="Auto" />
</Border>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
うまくいけば、それが正しい方向への微調整です。それをスタイル リソースとして追加し、TabControl -> TabItem から参照する必要があります。
デザイナーで行うことで、スペースを簡単に追加できます。一番右のタブから始めて、移動するタブを選択します。次に、ctrl を押しながら右矢印キーを使用して、タブを右に移動します。残りのタブでも同じことを行います。その後、xaml コードでマージンを手動で調整できます。