Style examples
1. Set font family and font size for all tabs.
<Style TargetType="TabsStudio:Tabs" BasedOn="{StaticResource DefaultTabsStyle}">
<Setter Property="Control.FontFamily" Value="Consolas"/>
<Setter Property="Control.FontSize" Value="12pt"/>
</Style>
2. Set font style, font weight and text color for the selected tab.
<Style TargetType="TabsStudio:TabName" BasedOn="{StaticResource DefaultTabNameStyle}">
<Style.Triggers>
<Trigger Property="IsTabSelected" Value="True">
<Setter Property="FontStyle" Value="Italic"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Foreground" Value="Blue"/>
</Trigger>
</Style.Triggers>
</Style>
3. Keep fixed tab width whether a document is modified or not.
By default, modified tab width is greater than non modified one due to additional asterisk. It may inconveniently cause tabs to change rows when editing and saving files. To reserve space for the asterisk when tab extension or tab name are not modified use the following style:
<Style TargetType="TabsStudio:TabExtensionModificationMarker"
BasedOn="{StaticResource DefaultTabExtensionModificationMarkerStyle}">
<Setter Property="Visibility" Value="Hidden"/>
</Style>
<Style TargetType="TabsStudio:TabNameModificationMarker"
BasedOn="{StaticResource DefaultTabNameModificationMarkerStyle}">
<Setter Property="Visibility" Value="Hidden"/>
</Style>
4. Set the exclamation mark as the file modification marker.
<Style TargetType="TabsStudio:TabExtensionModificationMarker"
BasedOn="{StaticResource DefaultTabExtensionModificationMarkerStyle}">
<Setter Property="Content" Value="!"/>
</Style>
<Style TargetType="TabsStudio:TabNameModificationMarker"
BasedOn="{StaticResource DefaultTabNameModificationMarkerStyle}">
<Setter Property="Content" Value="!"/>
</Style>
5. Set red color for modified tab title.
<Style TargetType="TabsStudio:TabExtensionModificationMarker"
BasedOn="{StaticResource DefaultTabExtensionModificationMarkerStyle}">
<Style.Triggers>
<Trigger Property="IsExtensionModified" Value="True">
<Setter Property="Visibility" Value="Collapsed"/>
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="TabsStudio:TabExtension"
BasedOn="{StaticResource DefaultTabExtensionStyle}">
<Style.Triggers>
<Trigger Property="IsExtensionModified" Value="True">
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="TabsStudio:TabNameModificationMarker"
BasedOn="{StaticResource DefaultTabNameModificationMarkerStyle}">
<Style.Triggers>
<Trigger Property="IsNameModified" Value="True">
<Setter Property="Visibility" Value="Collapsed"/>
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="TabsStudio:TabName"
BasedOn="{StaticResource DefaultTabNameStyle}">
<Style.Triggers>
<Trigger Property="IsNameModified" Value="True">
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
6. Set a custom icon for read-only documents.
<Style TargetType="TabsStudio:TabNameReadOnlyImage"
BasedOn="{StaticResource DefaultTabNameReadOnlyImageStyle}">
<Setter Property="Source" Value="file://c:/GoldLock.png"/>
</Style>
<Style TargetType="TabsStudio:TabExtensionReadOnlyImage"
BasedOn="{StaticResource DefaultTabExtensionReadOnlyImageStyle}">
<Setter Property="Source" Value="file://c:/GoldLock.png"/>
</Style>
7. Set tool tip show delay to 1500 ms (default delay is 500 ms).
<Style TargetType="TabsStudio:Tab" BasedOn="{StaticResource DefaultTabStyle}">
<Setter Property="ToolTipService.InitialShowDelay" Value="1500"/>
</Style>
<Style TargetType="TabsStudio:TabExtension" BasedOn="{StaticResource DefaultTabExtensionStyle}">
<Setter Property="ToolTipService.InitialShowDelay" Value="1500"/>
</Style>
8. Set aliased text rendering mode for tabs in Visual Studio 2010.
<Style TargetType="TabsStudio:Tabs" BasedOn="{StaticResource DefaultTabsStyle}">
<Setter Property="TextOptions.TextFormattingMode" Value="Display"/>
<Setter Property="TextOptions.TextRenderingMode" Value="Aliased"/>
</Style>
9. Show the close file button for each extension on the selected tab.
<Style TargetType="TabsStudio:TabExtensionCloseButton"
BasedOn="{StaticResource DefaultTabExtensionCloseButtonStyle}">
<Style.Triggers>
<Trigger Property="IsTabSelected" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="TabsStudio:CloseTabButton" BasedOn="{StaticResource DefaultCloseTabButtonStyle}">
<Style.Triggers>
<Trigger Property="IsMultiExtensions" Value="True">
<Setter Property="Visibility" Value="Collapsed"/>
</Trigger>
</Style.Triggers>
</Style>
10. Remove default left and right margins of 1 pixel for tabs in a separate Visual Studio 2010 window.
<Style TargetType="TabsStudio:Tabs" BasedOn="{StaticResource DefaultTabsStyle}">
<Setter Property="Margin" Value="0,0,0,0"/>
</Style>
11. Show the close tab button on an inactive tab when mouse is over the tab.
<Style TargetType="TabsStudio:CloseTabButton" BasedOn="{StaticResource DefaultCloseTabButtonStyle}">
<Style.Triggers>
<Trigger Property="IsTabSelected" Value="False">
<Setter Property="Visibility" Value="Hidden"/>
</Trigger>
<DataTrigger Binding="{Binding Path=IsMouseOver,
RelativeSource={RelativeSource AncestorType=TabsStudio:Tab}}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
12. Disable blue inactive tab background on mouse over.
<Style TargetType="TabsStudio:Tab" BasedOn="{StaticResource DefaultTabStyle}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabsStudio:Tab}">
<Border Background="{TemplateBinding Background}" Padding="5,1,5,1"
BorderThickness="1,1,1,0" BorderBrush="Gray">
<ContentPresenter Name="Content" ContentSource="Header"
HorizontalAlignment="{Binding Path=HorizontalContentAlignment,
RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="TabsStudio:TabsHost" BasedOn="{StaticResource DefaultTabsHostStyle}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabsStudio:TabsHost}">
<ScrollViewer HorizontalScrollBarVisibility="Disabled"
VerticalScrollBarVisibility="Auto"
Focusable="False">
<Grid>
<Rectangle Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}"
Fill="{TemplateBinding Background}"/>
<ContentPresenter/>
</Grid>
</ScrollViewer>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
14. Set custom color for specific extensions.
<Style TargetType="TabsStudio:TabExtension"
BasedOn="{StaticResource DefaultTabExtensionStyle}">
<Style.Triggers>
<Trigger Property="Content" Value=".vb">
<Setter Property="Foreground" Value="Blue"/>
</Trigger>
<Trigger Property="Content" Value=".vb [Design]">
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
15. Underline the selected tab.
<Style TargetType="TabsStudio:TabName" BasedOn="{StaticResource DefaultTabNameStyle}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabsStudio:TabName}">
<ControlTemplate.Triggers>
<Trigger Property="IsTabSelected" Value="True">
<Setter TargetName="NameBlock" Property="TextBlock.TextDecorations" Value="Underline"/>
</Trigger>
</ControlTemplate.Triggers>
<TextBlock Name="NameBlock" Padding="0,2,0,2">
<ContentPresenter />
</TextBlock>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
16. Limit tab name width to always show the close tab button in vertical mode.
<Style TargetType="TabsStudio:TabName" BasedOn="{StaticResource DefaultTabNameStyle}">
<Setter Property="MaxWidth" Value="200"/>
</Style>
17. Minimize tab width padding when multiple rows are visible.
<Style TargetType="TabsStudio:Tabs" BasedOn="{StaticResource DefaultTabsStyle}">
<Setter Property="LessRowsPriority" Value="100"/>
<Setter Property="ShortTabsPriority" Value="100"/>
</Style>
18. Set custom color for active extension.
<Style TargetType="TabsStudio:TabExtension" BasedOn="{StaticResource DefaultTabExtensionStyle}">
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsTabSelected" Value="True" />
<Condition Property="IsExtensionActive" Value="True" />
</MultiTrigger.Conditions>
<Setter Property="Foreground" Value="Red" />
</MultiTrigger>
</Style.Triggers>
</Style>
19. Underline the active extension.
<Style TargetType="TabsStudio:TabExtension"
BasedOn="{StaticResource DefaultTabExtensionStyle}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabsStudio:TabExtension}">
<Grid>
<Border Name="Border" BorderBrush="Transparent" BorderThickness="1" CornerRadius="2">
<TextBlock Name="LabelText" Text="{TemplateBinding ContentControl.Content}" Padding="2,1,2,1"/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Border" Property="BorderBrush">
<Setter.Value>
<SolidColorBrush Color="Gray" Opacity="1"/>
</Setter.Value>
</Setter>
<Setter TargetName="LabelText" Property="Background" Value="White"/>
<Setter TargetName="LabelText" Property="Foreground" Value="Black"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsTabSelected" Value="True" />
<Condition Property="IsExtensionActive" Value="True" />
</MultiTrigger.Conditions>
<Setter TargetName="LabelText" Property="TextBlock.TextDecorations" Value="Underline"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Return to Style
Copyright 2009 - 2023
Vlasov Studio (Visual Studio extensions and tools)