Почему у нас нет таких простых и отзывчивых помощников для 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 -подобный запрос:
@media only screen and (min-width: 600px) {
.TextTileH1 {
font-size: 36;
}
}
Так как я могу использовать VisualStateManager
в течение ResourceDirectory
, чтобы изменить все стили текста сразу для другого размера экрана?
Я пытался использовать этот ответ , но, согласно моему комментарию, я не смог добиться успеха, Я попытался применить больший запас к одному из <StackPanel>
(также дал ему имя, как и должно), но ничего не изменилось.