2 Stimmen

In WPF-Stil, wie kann Trigger Zugriff auf ein Sohn-Element des Elements, das es angehängt ist

Das Folgende ist ein einfacher Stil für ListBoxItem, ListBoxItem hat einen Sohn Border. Border hat eine Padding-Eigenschaft mit einem Wert von 8, ich möchte den Wert auf 0 ändern, wenn das Element ausgewählt ist. Wie kann ich den Trigger schreiben?

    <??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>

6voto

Matt Hamilton Punkte 193704

Versuchen Sie, dem Rahmen einen Namen zu geben (z. B. mit x:Name="border1") und dann mit der ZielName Eigenschaft von Setter, etwa so:

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

Ich bin nicht sicher, ob es in einer solchen Kontrollvorlage funktioniert, aber probieren Sie es aus.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X