我正在使用MaterialDesignInXaml
来设置我的应用程序样式。说,我正在使用带有CollectionViewGroup
的ListView对我的项目进行分组,无论如何,在GroupStyle
我有这样的结构:
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Expander IsExpanded="True">
<Expander.Header>
<DockPanel Height="16.5">
<TextBlock Text="{Binding Name.Name}" FontWeight="Bold" Foreground="White" FontSize="11.5" VerticalAlignment="Bottom" />
<TextBlock Text="{Binding ItemCount}" FontSize="11.5" Foreground="Orange" FontWeight="Bold" FontStyle="Italic" Margin="10,0,0,0" VerticalAlignment="Bottom" />
</DockPanel>
</Expander.Header>
<Border Style="{DynamicResource MaterialDesignPaper}">
<ItemsPresenter />
</Border>
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
现在问题出在这一行:<Border Style="{DynamicResource MaterialDesignPaper}">
,如果我删除边框一切正常,但是上面的xml我得到了这个例外:
System.Windows.Markup.XamlParseException:无法将类型为“System.Windows.Media.SolidColorBrush”的对象强制转换为“System.Windows.Style”。 ---&GT; System.InvalidCastException:无法在类型'System.Windows.Style'上强制转换'System.Windows.Media.SolidColorBrush'类型的对象。
为什么会发生这种情况?
答案 0 :(得分:0)
MaterialDesignPaper是一个Brush,而不是Style。
因此,根据您的要求,您需要以下内容:
<Border BorderBrush="{DynamicResource MaterialDesignPaper}" />
要么
<Border Background="{DynamicResource MaterialDesignPaper}" />
此处列出了XAML画笔中的所有材质设计:https://github.com/ButchersBoy/MaterialDesignInXamlToolkit/wiki/Brush-Names