“混合简化了基于发言权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的项目? –