2

以下は 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>
4

1 に答える 1

6

Border に名前を付けて (x:Name="border1" などを使用)、Setter のTargetNameプロパティを次のように使用してみてください。

<Setter TargetName="border1" Property="Padding" Value="0" />

そのようなコントロール テンプレートで機能するかどうかはわかりませんが、試してみてください。

于 2008-10-09T07:17:48.440 に答える