C# 在WPF中对ListBoxItem触发触发器时,如何设置父元素的属性

C# 在WPF中对ListBoxItem触发触发器时,如何设置父元素的属性,c#,wpf,xaml,C#,Wpf,Xaml,我有一个资源字典,它有一个样式,负责创建垂直侧菜单的样式。 下面是一个假设示例的XAMLResourceDictionary,该示例用于演示问题: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x

我有一个
资源字典
,它有一个
样式
,负责创建垂直侧菜单的样式。 下面是一个假设示例的XAML
ResourceDictionary
,该示例用于演示问题:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
               xmlns:control="clr-namespace:FirstFloor.ModernUI.Presentation">
<Style TargetType="control:Controle">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="control:Controle">
                <Grid>
                    <Border Background="{TemplateBinding BackColor}">
                        <ListBox x:Name="LinkList" ItemsSource="{Binding Links,RelativeSource={RelativeSource TemplatedParent}}" Background="Transparent">
                            <ListBox.ItemTemplate>
                                <DataTemplate>
                                    <Grid Height="50"  Width="500"  >
                                        <TextBlock Text="{Binding DisplayName}" Foreground="Black" Margin="45,2,2,2" FontSize="{DynamicResource MediumFontSize}" TextTrimming="CharacterEllipsis" VerticalAlignment="Center" HorizontalAlignment="Left" />
                                    </Grid>
                                    <DataTemplate.Triggers>
                                        <Trigger Property="IsMouseOver" Value="true">
                                            <Trigger.Setters>
                                                <Setter Property="control:Controle.BackColor" Value="Red"/>
                                            </Trigger.Setters>
                                        </Trigger>
                                    </DataTemplate.Triggers>
                                </DataTemplate>
                            </ListBox.ItemTemplate>
                        </ListBox>
                  </Border>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
我想知道为什么在下面这行:

 <Setter Property="control:Controle.BackColor" Value="Red"/>

我无法设置
Controle
的属性。。。
有趣的是,如果我设置了任何其他地方的禁止所有权,似乎都会发生,但是当我在ItemTemplate中设置它时,它没有任何效果。

如果不连接程序代码,您可以做的最好的事情是:

<ControlTemplate.Triggers>
    <Trigger Property="IsMouseOver" Value="True" SourceName="LinkList">
        <Trigger.Setters>
            <Setter Property="BackColor" Value="Red" />
        </Trigger.Setters>
    </Trigger>
</ControlTemplate.Triggers>

您可能忘了写“下面的一行”。
<ControlTemplate.Triggers>
    <Trigger Property="IsMouseOver" Value="True" SourceName="LinkList">
        <Trigger.Setters>
            <Setter Property="BackColor" Value="Red" />
        </Trigger.Setters>
    </Trigger>
</ControlTemplate.Triggers>