gpt4 book ai didi

c# - WPF 中的 ItemsControl/DataTemplate 内部没有样式继承?

转载 作者:太空狗 更新时间:2023-10-30 01:31:32 25 4
gpt4 key购买 nike

谁能解释为什么我的 DataTemplate 中的 TextBlock 没有应用我的 UserControl.Resources 元素中定义的样式,而是第二个 TextBlock ('Test 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>

最佳答案

模板被视为边界。模板中的元素落在这个边界范围内,并在运行时查找具有匹配目标类型的样式结束在这个范围内,结果是外部的 TextBlock 将选择该样式,而内部的则不会。就像 adminSoftDK 说的那样,您应该给样式一个 x:Key,然后将其作为静态资源应用,它将起作用

关于c# - WPF 中的 ItemsControl/DataTemplate 内部没有样式继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40906655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com