Frage

Gibt es eine Möglichkeit XAML Eigenschaften haben skalieren zusammen mit der Größe der UIElements sie gehören?

Im Wesentlichen habe ich eine Steuervorlage, die ich geschaffen habe, zu groß ist, die Nutzung ist / vor allem, weil ich die gleiche Steuerung mit verschiedenen Größen verwendet werden soll. Das Problem ist, dass ich die Kontrolle Größe auf Auto (im Control) einstellen kann, aber die Eigenschaften der intrisic Schablonenelemente werden nicht verändert: zB StrokeThickness bei 10 bleibt, während es 1 werden sollte

Es funktioniert gut, wenn ich eine Scaletransform auf der Vorlage anwenden, aber das führt zu einer Kontrolle, die zu klein ist, wenn es tatsächlich verwendet wird: die Breite / Höhe = Auto ändert die Größe die Steuerung auf die richtige Größe und dann die Scaletransform angewendet wird. So bin ich Sachen mit einer Art nicht skalierbare Kontrolle.

Ich bin ein bisschen neu zu WPF, so könnte es eine einfache Möglichkeit, dies zu tun ...

War es hilfreich?

Lösung

Sie könnten versuchen, die Breite und Höhe der Steuer in der Vorlage auf die Breite und Höhe zu binden bzw. der Templat-Steuerung zur Laufzeit. So etwas wie:

<Button>
    <Button.Template>
        <ControlTemplate TargetType={x:Type Button}>
            <Border Width="{TemplateBinding Property=ActualWidth}"
                    Height="{TemplateBinding Property=ActualHeight}">
                <ContentPresenter />
             </Border>
         </ControlTemplate>
    </Button.Template>
</Button>

Beachten Sie, dass die Bindungsquellen sind die FrameworkElement.ActualWidth und FrameworkElement.ActualHeight Eigenschaften der Templat-Kontrolle. Diese Eigenschaften enthalten die Breite und Höhe eines Steuer, nachdem es gemacht wurde, die aus verschieden sein können, was in der angegeben wurde Breite und Höhe Eigenschaften. Dies liegt daran, dass die Werte letztlich bei berechneter Laufzeit unter Berücksichtigung die Größe eines übergeordneten Steuerelemente in der visuellen Struktur.

Andere Tipps

Ihre Beschreibung ist etwas vage, aber es klingt wie Sie eine ViewBox mit der Dehnung Uniform als Root-Element Ihrer Kontrolle gesetzt haben mögen.

Schade, dass Sie nicht eine Steuer Vorlage für einen Stackpanel, DockPanel, Gitter oder einen anderen Container erstellen.

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