「混合簡化了基於發言權minWindowWidth
設置可視狀態,但是這將是非常好的,有TextBlock
元素定義的基於狀態的樣式,說有tag="header"
,tag="body"
,並有Setter自動更改樣式。「更改樣式
也許我是不是在我最初的問題明確不夠,讓我重複這一點。
我從說景觀調整我的應用程序窗口肖像。我的VisualStateManager具有根據新的最小寬度調整頁面屬性的設置器。
我有多個的TextBlocks(標題,正文等)並用。文本(ToggleSwitch)其他控件,我想要基於新的寬度來自動調節字號。
除了按名稱在所有狀態手動設置的每一個控制,是有辦法有VisualStateManager做自動爲每個文本(體/報頭/等)的「類型」?此刻我的工作是爲每個.Text控件創建一個DataBind風格,並讓ViewModel執行所有縮放。這很有效,但這確實是Blend製作的,對嗎?所以我必須錯過每個人都在使用的明顯方式。
感謝所有的好意見爲止。
<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..-->
也許這只是我,但我不明白你在追求什麼。也許代碼示例會有所幫助... – AlexDrenea
樣式不必針對所有TextBlocks ...如果您將樣式設爲'x:Key',那麼它將只應用於明確指出'Style = {StaticResource }'。您可以爲'Header'和'Body'製作不同的樣式,然後將這些樣式應用於您想要看起來類似的TextBlocks。 –
WPF和UWP是兩個不同的故事。 UWP中的XAML UI框架也與WPF中的不同。所以請澄清你正在使用的框架。對於WPF,請使用[tag:wpf]和[tag:xaml],對於UWP,使用[tag:uwp]和[tag:uwp-xaml]更好。此外,我也混淆了你想達到的目標。姜忍者的答案是否符合你的要求?他的答案在WPF中有效。對於UWP應用程序,我想知道這個'TextBlock'是否被用作ListBox或ListView的項目? –