我试图将样式应用于HeaderedItemsControl的HeaderedItemsControl中的所有文本框。它在控件的标题中运行得完美无缺,但不知何故,它的内容却不完美。
下面是TextBlock风格:
<Style TargetType="TextBlock" x:Key="StructuredViewText">
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="Padding" Value="2.5,5,10,2.5"/>
</Style>下面是HeaderedItemsControl的样式
<Style TargetType="HeaderedItemsControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type HeaderedItemsControl}">
<StackPanel>
<Grid>
<Rectangle Fill="{TemplateBinding Background}"/>
<ContentPresenter ContentSource="Header">
<ContentPresenter.Resources>
<Style TargetType="{x:Type TextBlock}" BasedOn="{StaticResource StructuredViewText}"/>
</ContentPresenter.Resources>
</ContentPresenter>
</Grid>
<Grid>
<Grid.Resources>
<Style TargetType="{x:Type TextBlock}" BasedOn="{StaticResource StructuredViewText}"/>
</Grid.Resources>
<Rectangle Stroke="{TemplateBinding BorderBrush}"/>
<ItemsPresenter Margin="2,0,0,0">
<ItemsPresenter.Resources>
<Style TargetType="{x:Type TextBlock}" BasedOn="{StaticResource StructuredViewText}"/>
</ItemsPresenter.Resources>
</ItemsPresenter>
</Grid>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel MaxWidth="300"/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Style>下面是如何使用HeaderedItemsControl:
<HierarchicalDataTemplate DataType="{x:Type this:StructuredViewNode}" ItemsSource="{Binding Children}">
<Grid>
<Grid.Resources>
<Style TargetType="Border" >
<Setter Property="Padding" Value="50" />
</Style>
</Grid.Resources>
<!-- Beschreibung -->
<HeaderedItemsControl Header="Beschreibung">
<TextBlock Text="{Binding Description}"/>
</HeaderedItemsControl>
</Grid>
</HierarchicalDataTemplate>提前感谢!
发布于 2018-04-09 09:52:34
模板在当前解决方案中无法工作的原因是,在编译时它不是Visual的一部分。正因为如此,样式才不会被应用。只有在您显式地分配模板中的样式时才能这样做:
<HierarchicalDataTemplate DataType="{x:Type this:StructuredViewNode}" ItemsSource="{Binding Children}">
<Grid>
<Grid.Resources>
<Style TargetType="Border" >
<Setter Property="Padding" Value="50" />
</Style>
</Grid.Resources>
<!-- Beschreibung -->
<HeaderedItemsControl Header="Beschreibung">
<HeaderedItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}" Style="{StaticResource StructuredViewText}"/>
</DataTemplate>
</HeaderedItemsControl.ItemTemplate>
</HeaderedItemsControl>
</Grid>
</HierarchicalDataTemplate> 在此之后,当您运行应用程序时,将对样式进行评估。
更多信息来自MSDN。
https://stackoverflow.com/questions/49728804
复制相似问题