UWP重用视觉状态管理器

问题描述 投票:1回答:1

为什么我们没有UWP这样容易响应的帮助程序?

我在单独的.xaml文件中具有这些样式:

<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Project.App.WindowsApp.Styles">
    <Style x:Key="TextTitleH1" TargetType="TextBlock" >
        <Setter Property="FontFamily" Value="Quicksand"/>
        <Setter Property="FontWeight" Value="Light"/>
        <Setter Property="FontSize" Value="30" />
    </Style>
    <Style x:Key="TextTitleH2" TargetType="TextBlock" >
        <Setter Property="FontFamily" Value="Quicksand"/>
        <Setter Property="FontWeight" Value="Light"/>
        <Setter Property="FontSize" Value="24" />
    </Style>
    <Style x:Key="TextTitleH3" TargetType="TextBlock" >
        <Setter Property="FontFamily" Value="Quicksand"/>
        <Setter Property="FontWeight" Value="Normal"/>
        <Setter Property="FontSize" Value="22" />
    </Style>
    <Style x:Key="TextTitleH4" TargetType="TextBlock" >
        <Setter Property="FontFamily" Value="Quicksand"/>
        <Setter Property="FontWeight" Value="Normal"/>
        <Setter Property="FontSize" Value="16" />
    </Style>
    <Style x:Key="TextNormal" TargetType="TextBlock" >
        <Setter Property="FontFamily" Value="Quicksand"/>
        <Setter Property="FontWeight" Value="Light"/>
        <Setter Property="FontSize" Value="16" />
    </Style>
</ResourceDictionary>

我有一个使用这些样式的页面(为简单起见,遗漏了大量代码):

<ScrollViewer >
    <Grid>
       ...

        <StackPanel>
            <TextBlock  Text="{Binding Source={CustomResource Page_Dashboard_LatestImage}}" Style="{StaticResource TextTitleH4}" />
            ...
            <TextBlock Text="{CustomResource Page_Dashboard_NoImage}" Style="{StaticResource TextNormal}"/>

            <TextBlock Text="{CustomResource Page_Dashboard_LatestImage_Description}" Style="{StaticResource TextNormal}" />
         ...

        </StackPanel>
        <StackPanel>
            <TextBlock Text="{Binding Source={CustomResource Page_Dashboard_TipsTitle}} Style="{StaticResource TextTitleH4}" />
            ...
        </StackPanel>
     ...
    </Grid>
</ScrollViewer>

现在,我可以给所有这些控件一个x:Name并在此页面中使用VisualStateManager来调整文本的大小,但是我在整个应用程序中都使用了这些文本样式,因此我想一次更改它们,定义一个使用简单的类似CSS的查询,即可为不同的屏幕尺寸设置fontsize:

@media only screen and (min-width: 600px) {
  .TextTileH1 {
    font-size: 36;
  }
}

那么,如何才能在VisualStateManager中一般使用ResourceDirectory一次更改不同屏幕尺寸的所有文本样式?

我曾尝试使用this answer,但根据我的评论,我无法成功,我曾尝试为<StackPanel>的其中一个应用较大的边距(也给它起了应有的名称)但没有任何变化。

c# xaml uwp responsive visualstatemanager
1个回答
0
投票
在测试了您提供的内容(this answer)之后,我修改了一些代码:
© www.soinside.com 2019 - 2024. All rights reserved.