Udostępnij za pośrednictwem


Instrukcje: używanie kolorów systemowych w gradientzie

Aby użyć koloru systemowego w gradientzie, należy użyć *<SystemColor>*Color i *<SystemColor>*ColorKey jako właściwości statycznych klasy SystemColors, aby uzyskać odwołanie do koloru, gdzie <SystemColor> jest nazwą żądanego koloru systemowego. Użyj właściwości *<SystemColor>*ColorKey, gdy chcesz utworzyć dynamiczne odwołanie, które aktualizuje się automatycznie w miarę zmian motywu systemowego. W przeciwnym razie użyj właściwości *<SystemColor>*color.

Przykład

W poniższym przykładzie użyto dynamicznych zasobów kolorów systemu do utworzenia gradientu.

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  WindowTitle="Dynamic System Colors Example" Background="White">  
  <StackPanel Margin="20">
 
    <!-- Uses dynamic references to system colors to set
         the colors of gradient stops. 
         If these system colors change while this application
         is running, the gradient will be updated
         automatically.  -->
    <Button Content="Hello, World!">
      <Button.Background>
        <LinearGradientBrush>
          <LinearGradientBrush.GradientStops>
            <GradientStop Offset="0.0" 
              Color="{DynamicResource {x:Static SystemColors.DesktopColorKey}}" />
            <GradientStop Offset="1.0" 
              Color="{DynamicResource {x:Static SystemColors.ControlLightLightColorKey}}" />
          </LinearGradientBrush.GradientStops>
        </LinearGradientBrush>
      </Button.Background>
    </Button>

  </StackPanel>
</Page>

W następnym przykładzie użyto statycznych zasobów kolorów systemu do utworzenia gradientu.

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  WindowTitle="Static System Colors Example" Background="White">  
  <StackPanel Margin="20">
 
    <!-- Uses static references to system colors to set
         the colors of gradient stops. 
         If these system colors change while this application
         is running, this button will not be updated until
         the page is loaded again. -->
    <Button Content="Hello, World!">
      <Button.Background>
        <LinearGradientBrush>
          <LinearGradientBrush.GradientStops>
            <GradientStop Offset="0.0" 
              Color="{x:Static SystemColors.DesktopColor}" />
            <GradientStop Offset="1.0" 
              Color="{x:Static SystemColors.ControlLightLightColor}" />
          </LinearGradientBrush.GradientStops>
        </LinearGradientBrush>
      </Button.Background>
    </Button>

  </StackPanel>
</Page>

Zobacz też