在WPF样式中,触发器如何访问它所附加的元素的子元素

use*_*749 2 wpf triggers

以下是ListBoxItem的简单样式,ListBoxItem有一个子Border.Border有一个值为8的Padding属性,我想在选择项目时将值更改为0.我怎么写触发器?

    <??Style TargetType="{x:Type ListBoxItem}">
        <Setter Property="Background" Value="Transparent" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ListBoxItem}" >
                    <Border 
                        SnapsToDevicePixels="True" 
                        HorizontalAlignment="Center" 
                        VerticalAlignment="Center"
                        Padding = "8"
                        Background="{TemplateBinding Background}">
                        <ContentPresenter />
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsSelected" Value="True">
                            ??<Setter Property="Padding" Value="0" />??   <----How Can I do this?
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    <??/Style>
Run Code Online (Sandbox Code Playgroud)

Mat*_*ton 6

尝试给边框命名(例如,使用x:Name ="border1"),然后使用Setter 的TargetName属性,如下所示:

<Setter TargetName="border1" Property="Padding" Value="0" />
Run Code Online (Sandbox Code Playgroud)

不确定它是否可以在这样的控制模板中工作,但是试一试.