<TabControl ItemsSource="{Binding Tabs}" SelectedItem="{Binding SelectedTab, UpdateSourceTrigger=PropertyChanged}" Margin="15">
<TabControl.ItemTemplate>
<DataTemplate>
<ContentControl Content="{Binding Title}">
<ContentControl.Style>
<Style>
<Setter Property="Background" Value="Orange"></Setter>
</Style>
</ContentControl.Style>
</ContentControl>
...more code
在上面,我正在尝试设置tabcontrol,特别是选项卡本身。
问题是尝试为整个标签项设置背景颜色。 XAML不喜欢Setter Property="Background"
位。
我不是要求某人修复它(本身),但为什么 XAML不喜欢它(所以我能理解它)。
我的理解是(这是我需要指导的地方):我知道Background
是ContentControl
的有效属性,所以我们可以告诉WPF我们通过{{访问它的样式1}} - 现在,它期待一种风格,因此我们提供ContentControl.Style
标签,然后提供style
。
无法解析样式属性“背景”。验证拥有类型是Style的TargetType,或使用Class.Property语法指定属性。
有人可以解释我的想法不正确吗?
答案 0 :(得分:2)
因为它不知道样式适用的类型,所以你必须使用Style
的{{3}}属性来指定它:
<Style TargetType="ContentControl">
<Setter Property="Background" Value="Orange"></Setter>
</Style>
我认为在您的情况下,将样式设置在更高级别更容易:
<TabControl.Resources>
<Style TargetType="TabItem">
<Setter Property="Background" Value="Orange" />
</Style>
</TabControl.Resources>
或删除ContentControl
:
<DataTemplate>
<Grid>
<Grid.Style>
<Style TargetType="Grid">
<Setter Property="Background" Value="Orange"></Setter>
</Style>
</Grid.Style>
<Label Content="{Binding Title}" />
</Grid>
</DataTemplate>