无法从WPF工具包为Accordion创建AccordionItem模板
我正在为一个需要手风琴控件的项目使用WPF工具包。该控件最初工作正常—存在已知的设计缺陷,但在其他方面没有问题,但尝试该控件的任何人都知道它附带的奇怪的蓝色背景。我想更改控件的默认背景,然后转到Expression Blend,右键单击AccordionItem实例,然后转到Edit Template->Edit a Copy。我选择应用所有的app-wise,它会创建一个新的模板,该模板应该与原始模板相同。控件看起来完全相同,但AccordionItem中的任何内容都不可见。没有错误,没有警告。他们只是隐形了。当我在XAML中单击他们的标记时,我可以看到他们被选中了,就好像他们在某些东西后面,但他们不是!当我从App.xaml中删除从未接触过的控件模板时,它会恢复正常,但我又恢复了蓝色背景。以下是由Blend创建的未触及的XAML模板:无法从WPF工具包为Accordion创建AccordionItem模板,wpf,xaml,.net-4.0,wpftoolkit,app.xaml,Wpf,Xaml,.net 4.0,Wpftoolkit,App.xaml,我正在为一个需要手风琴控件的项目使用WPF工具包。该控件最初工作正常—存在已知的设计缺陷,但在其他方面没有问题,但尝试该控件的任何人都知道它附带的奇怪的蓝色背景。我想更改控件的默认背景,然后转到Expression Blend,右键单击AccordionItem实例,然后转到Edit Template->Edit a Copy。我选择应用所有的app-wise,它会创建一个新的模板,该模板应该与原始模板相同。控件看起来完全相同,但AccordionItem中的任何内容都不可见。没有错误,没有警告
<Style TargetType="{x:Type System_Windows_Controls:AccordionItem}">
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="#FFECECEC"/>
<Setter Property="Background" Value="White"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="VerticalAlignment" Value="Stretch"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Top"/>
<Setter Property="IsTabStop" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type System_Windows_Controls:AccordionItem}">
<Grid Background="Blue" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" VerticalAlignment="{TemplateBinding VerticalAlignment}">
<Border x:Name="Background" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="1" Padding="{TemplateBinding Padding}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="cd0" Width="Auto"/>
<ColumnDefinition x:Name="cd1" Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition x:Name="rd0" Height="Auto"/>
<RowDefinition x:Name="rd1" Height="Auto"/>
</Grid.RowDefinitions>
<System_Windows_Controls_Primitives:AccordionButton x:Name="ExpanderButton" Background="{TemplateBinding Background}" ContentTemplate="{TemplateBinding HeaderTemplate}" Content="{TemplateBinding Header}" Foreground="{TemplateBinding Foreground}" FontWeight="{TemplateBinding FontWeight}" FontStyle="{TemplateBinding FontStyle}" FontStretch="{TemplateBinding FontStretch}" FontSize="{TemplateBinding FontSize}" FontFamily="{TemplateBinding FontFamily}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsTabStop="True" IsChecked="{TemplateBinding IsSelected}" Margin="0" Padding="0" Grid.Row="0" Style="{TemplateBinding AccordionButtonStyle}" VerticalAlignment="{TemplateBinding VerticalAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
<System_Windows_Controls_Primitives:ExpandableContentControl x:Name="ExpandSite" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Foreground="{TemplateBinding Foreground}" FontWeight="{TemplateBinding FontWeight}" FontStyle="{TemplateBinding FontStyle}" FontStretch="{TemplateBinding FontStretch}" FontSize="{TemplateBinding FontSize}" FontFamily="{TemplateBinding FontFamily}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsTabStop="False" Margin="0" Percentage="0" RevealMode="{TemplateBinding ExpandDirection}" Grid.Row="1" Style="{TemplateBinding ExpandableContentControlStyle}" VerticalAlignment="{TemplateBinding VerticalAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}">
<System_Windows_Controls_Primitives:ExpandableContentControl.Clip>
<RectangleGeometry/>
</System_Windows_Controls_Primitives:ExpandableContentControl.Clip>
</System_Windows_Controls_Primitives:ExpandableContentControl>
</Grid>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我错过什么了吗?我不太习惯于模板和样式,但从编辑副本到在未触及状态下执行的任何操作都应该与默认模板相同,但事实并非如此。我可以安全地删除模板以外的setter,而且它不会更改。模板设置程序有问题,导致AccordionItem异常运行。您只需删除字符串Background=Blue此属性是控件模板的第一个子网格的属性