Frage

Ich war Stossen nur um ein bisschen in WPF und wollte, dass alle Elemente auf meinem Fenster die gleiche Marge teilen. Ich fand, dass alle Steuerelemente, die eine Marge von mit von Framework der Lage ist, ableiten, so ich folgende versucht:

<Window.Resources>
<Style TargetType="{x:Type FrameworkElement}">
    <Setter Property="Margin" Value="10" />
</Style>
</Window.Resources>

Und, funktioniert das nicht. Ich kann dies auf alle Tasten gelten, aber nicht für alle Elemente, die von Knopf abzuleiten. Bin ich etwas fehlt oder ist dies einfach nicht möglich?

Bin ich der einzige, wie die Verwendung von CSS für WPF Gefühl wäre eine gute Idee gewesen?

War es hilfreich?

Lösung

Leider kann man nicht Stile auf die Basis Framework Art gelten; während WPF Sie den Stil schreiben lassen, wird es auf die Kontrollen gelten sie nicht, die sich daraus ableiten. Es scheint, dass dies gilt auch für Subtypen von Framework, z.B. Button, der übergeordnete Typ von Knopf / ToggleButton / Repeat.

Sie können nach wie vor Vererbung, aber Sie werden die explizite BasedOn Syntax verwenden müssen, um es Typen den Steuer gelten Sie es anwenden möchten.

<Window.Resources>
    <Style TargetType="{x:Type FrameworkElement}">
        <Setter Property="Margin" Value="10" />
    </Style>

    <Style TargetType="{x:Type Label}" BasedOn="{StaticResource {x:Type FrameworkElement}}" />
    <Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type FrameworkElement}}" />
    <Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type FrameworkElement}}" />

</Window.Resources>

Andere Tipps

Das Problem ist, dass, wenn für einen Stil sucht WPF nicht durch alle Klassen, aus denen die aktuellen leitet sich suchen. Allerdings können Sie den Stil einen Schlüssel geben und sie auf alle Elemente, für die Sie eine gemeinsame Eigenschaft haben möchten. Wenn eine Eigenschaft im Stil angegeben, die nicht auf das Element angewendet werden, können Sie Styling sind, wird es ignoriert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top