我是新來的WPF,但我會認爲有一種方法,我可以設置多個TabItems使用相同的樣式,而無需逐個添加樣式到每個TabItem。就像我在第一個TabItem中完成的一樣。這可能嗎?如何爲WPF中的多個TabItem設置一種樣式?
<TabControl Grid.Row="0" x:Name="tabControl" Margin="5,0,5,5" Height="600" Width="998">
<TabItem x:Name="tabSetToRun" Header="Run" Style="{DynamicResource myTabItemStyle}"/>
<TabItem x:Name="tabShortcut" Header="Freeze Shortcut"/>
<TabItem x:Name="tabFullAccess" Header="Full Access"/>
<TabItem x:Name="tabOldForms" Header="Old Forms"/>
<TabItem x:Name="tabCFG" Header="CFG Files"/>
</TabControl>
我對的TabItems風格是:
<Style x:Key="myTabItemStyle" TargetType="{x:Type TabItem}">
<Setter Property="Foreground" Value="White"/>
<Setter Property="Width" Value="180"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid>
<Border
Name="Border"
Background="#FF293955"
BorderBrush="LightCyan"/>
<ContentPresenter x:Name="ContentSite"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
ContentSource="Header"
Margin="12,2,12,2"
RecognizesAccessKey="True"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="Panel.ZIndex" Value="100" />
<Setter TargetName="Border" Property="Background" Value="LightCyan" />
<Setter TargetName="Border" Property="BorderThickness" Value="1,1,1,0" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
當我使用 我得到一個錯誤:Style對象不允許影響其適用 –
JimDel
對象的樣式屬性是,你不能從Style中改變Style。我的意思是將你的'Setter .... />'myTabItemStyle'複製到新的'Style'中:' 。請用'myTabItemStyle'的定義更新問題。 –
那麼你是說我應該直接在tabControl中添加所有的Style信息?使用你的? –
JimDel