Как я могу определить статический ресурс в C # вместо XAML? - PullRequest
0 голосов
/ 06 октября 2018

У меня есть этот код:

<ResourceDictionary>
   <Color x:Key="WordTextColor">#2196f3</Color>
</ResourceDictionary>

<Grid>
   <Grid.Resources>
      <Style TargetType="Grid">
         <Style TargetType="Label">
            <Setter Property="TextColor" Value="{StaticResource WordTextColor}" />
      </Style>

Как я могу кодировать это в C #

Также я могу закодировать этот статический ресурс как строку вместо цвета?

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

У вас может быть вспомогательный класс, например, где вы определяете все свои цвета / значения

 public static class Styles
    {
         private static Color _backgroundColor = Color.FromHex("151515");
         public static Color BackgroundColor => _backgroundColor;
    }

Затем в xaml вы ссылаетесь на него в заголовке:

xmlns:local="clr-namespace:YourProjectAssembly.YourName;assembly=YourProjectAssembly.YourName"

И использовать это:

<Grid BackgroundColor="{x:Static local:Styles.BackgroundColor}"/>
0 голосов
/ 06 октября 2018

Цвет может быть установлен в значениях String вместо значений Hexa.
Ресурсы могут быть установлены в Window.Resources или Grid.Resources.

Ресурсы на уровне окна

<Window.Resources>
   <Color x:Key="TheBackgroundColor">#2196f3</Color>
</Window.Resources>

<Grid>
  <Style TargetType="Grid">
     <Style TargetType="Label">
        <Setter Property="TextColor" Value="{StaticResource TheBackgroundColor}" />
  </Style>
</Grid>

Ресурсы на уровне сетки

<Grid>
  <Grid.Resources>
     <Color x:Key="TheBackgroundColor">#2196f3</Color>
  </Grid.Resources>
  <Style TargetType="Grid">
     <Style TargetType="Label">
        <Setter Property="TextColor" Value="{StaticResource TheBackgroundColor}" />
  </Style>
</Grid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...