我知道那里有很多这样的问题。但是大多数这些解决方案在我的情况下都不起作用。然而,花了一天的时间,我终于找到了一个适合我的解决方案。我只需要有更深入了解XAML的人向我解释,也可能向其他人解释这里到底发生了什么。
<Style x:Key="ListBoxItemStyleNoHighlighting" TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<ContentPresenter x:Name="contentPresenter"
Margin="{TemplateBinding Margin}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
如果有人需要xaml如何使用它,这里是
<ListBox Background="Transparent"
BorderThickness="0"
ItemTemplate="{StaticResource MyDataTemplate}"
ItemsSource="{Binding MenuSubItems}"
SelectedItem="{Binding MySelectedItem}"
ItemContainerStyle="{StaticResource ListBoxItemStyleNoHighlighting}">
那样的风格怎么样?我之前没见过这样的东西。经过一些研究后,我发现TemplateBinding只是将其值设置为父级。那么为什么即使ContentPresenter没有为样式添加任何东西也需要它。值得一提的是,没有ContentPresenter,它根本不起作用。
亲切的问候 丹尼尔