以下是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)
尝试给边框命名(例如,使用x:Name ="border1"),然后使用Setter 的TargetName属性,如下所示:
<Setter TargetName="border1" Property="Padding" Value="0" />
Run Code Online (Sandbox Code Playgroud)
不确定它是否可以在这样的控制模板中工作,但是试一试.