任何人都可以解释为什么我的TextBlock
中的DataTemplate
不适用我的UserControl.Resources
元素中定义的样式,但第二个TextBlock
('测试B') ?
我认为这可能与设置为不继承的依赖属性有关,但我无法确定。
<UserControl.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Padding" Value="8 2" />
</Style>
</UserControl.Resources>
<StackPanel>
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<!--Padding does not apply-->
<TextBlock>Test A</TextBlock>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<!--Padding applies-->
<TextBlock>Test B</TextBlock>
</StackPanel>
答案 0 :(得分:3)
模板被视为边界。模板中的元素属于此边界范围,并且在运行时查找具有匹配目标类型的样式在此范围内结束,因此TextBlock
外部将拾取样式而内部不会。比如adminSoftDK说你应该give the style an x:Key and then apply it as static resource it will work
。检查this。