„Blend-Setup von Visual Staaten basierend auf minWindowWidth
sagen wir es einfach macht. Aber es wäre sehr schön für TextBlock
Elemente definiert zustandsbasierte Stile zu haben, sagen mit tag="header"
, tag="body"
und haben Der Setter ändert den Style automatisch. "einen Stil ändern auf Basis von Visual Staat
Vielleicht war ich nicht explizit genug in meiner ersten Frage, lass mich das umformulieren.
Ich ändere mein Anwendungsfenster von Landscape zu Portrait. Mein VisualStateManager verfügt über Setter, die die Seiteneigenschaften basierend auf der neuen Mindestbreite anpassen.
Ich habe mehrere TextBlocks (Header, Body, etc) und andere Steuerelemente mit .Text (ToggleSwitch), die FontSize automatisch basierend auf der neuen Breite anpassen soll.
Abgesehen von der manuellen Einstellung jedes einzelnen Steuerelements über den Namen in allen Zuständen gibt es eine Möglichkeit, den VisualStateManager automatisch für jeden "Typ" von Text (body/header/etc) ausführen zu lassen? Meine Arbeit im Moment ist DataBind einen Style für jedes .Text-Steuerelement und lassen Sie das ViewModel die Skalierung durchführen. Das funktioniert, aber das ist wirklich etwas, für das Blend gemacht wird, oder? Also muss ich die offensichtliche Art vermissen, die jeder benutzt.
Danke für all die guten Kommentare bisher.
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="VisualStateGroup">
<VisualState x:Name="PhonePortrait">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource NarrowMinWidth}"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="SwitchStackPanel.(StackPanel.Orientation)" Value="Vertical"/>
<!-- Setter to change all Body textblocks to FontSize=8-->
<!-- Setter to change all Header textblocks to FontSize=10-->
<!-- Setter to change all ToggleSwitch.Text to FontSize=8-->
<!-- etc..-->
vielleicht ist es nur ich, aber ich verstehe nicht, was Sie zu erreichen haben. Vielleicht würde ein Codebeispiel helfen ... – AlexDrenea
Ein Stil muss nicht auf alle TextBlocks zielen ... Wenn Sie dem Stil ein 'x: Key' geben, wird er nur auf Steuerelemente angewendet, die explizit' Style = {StaticResource } '. Sie können separate Stile für "Header" und "Body" erstellen und dann diese Stile nur auf die TextBlocks anwenden, die ähnlich aussehen sollen. –
WPF und UWP sind zwei verschiedene Geschichten. Das XAML UI-Framework in UWP ist auch nicht das gleiche wie in WPF. Bitte klären Sie, welchen Rahmen Sie verwenden. Für WPF verwenden Sie bitte [tag: wpf] und [tag: xaml] und für UWP ist die Verwendung von [tag: uwp] und [tag: uwp-xaml] besser. Außerdem habe ich auch mit dem verwechselt, was Sie erreichen wollen. Entspricht die Antwort von Ginger Ninja Ihren Anforderungen? Seine Antwort funktioniert in WPF. Für die UWP-App möchte ich wissen, ob dieser 'TextBlock' als Element von' ListBox' oder 'ListView' verwendet wird? –