Wpf 通过TabControl.Resources的TabPanel的边距
如何通过TabControl设置TabPanel的边距。参考资料,我尝试了以下代码:Wpf 通过TabControl.Resources的TabPanel的边距,wpf,xaml,Wpf,Xaml,如何通过TabControl设置TabPanel的边距。参考资料,我尝试了以下代码: <TabControl.Resources> <Style TargetType="TabPanel"> <Setter Property="Margin" Value="500,0,0,0" />
<TabControl.Resources>
<Style TargetType="TabPanel">
<Setter Property="Margin" Value="500,0,0,0" />
</Style>
</TabControl.Resources>
</TabControl>
但由于某些原因,设置其宽度时不起作用:
<TabControl.Resources>
<Style TargetType="TabPanel">
<Setter Property="Width" Value="500" />
</Style>
</TabControl.Resources>
</TabControl>
目前我已经用模板设置了边距,但我想为一个单独的TabControl编辑边距
感谢Mikael Törnqvist您需要在TabControl的模板中指定TabPanel的边距 比如:
非常感谢,这是一个有点代码的保证金!啊,我想TabPanel在设置边距时需要一些参考!是的,原因是因为您仍然希望维护默认模板,因此为了做到这一点,您还需要提供默认模板设置。我从以下位置获得默认模板:
<Style TargetType="{x:Type TabControl}">
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabControl}">
<Grid KeyboardNavigation.TabNavigation="Local">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Disabled">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="Border"
Storyboard.TargetProperty="(Border.BorderBrush).
(SolidColorBrush.Color)">
<EasingColorKeyFrame KeyTime="0"
Value="#FFAAAAAA" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<TabPanel x:Name="HeaderPanel"
Grid.Row="0"
Panel.ZIndex="1"
Margin="500,0,4,-1"
IsItemsHost="True"
KeyboardNavigation.TabIndex="1"
Background="Transparent" />
<Border x:Name="Border"
Grid.Row="1"
BorderThickness="1"
CornerRadius="2"
KeyboardNavigation.TabNavigation="Local"
KeyboardNavigation.DirectionalNavigation="Contained"
KeyboardNavigation.TabIndex="2">
<Border.Background>
<LinearGradientBrush EndPoint="0.5,1"
StartPoint="0.5,0">
<GradientStop Color="{DynamicResource ContentAreaColorLight}"
Offset="0" />
<GradientStop Color="{DynamicResource ContentAreaColorDark}"
Offset="1" />
</LinearGradientBrush>
</Border.Background>
<Border.BorderBrush>
<SolidColorBrush Color="{DynamicResource BorderMediumColor}"/>
</Border.BorderBrush>
<ContentPresenter x:Name="PART_SelectedContentHost"
Margin="4"
ContentSource="SelectedContent" />
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TabControl.Resources>