Partilhar via


Como: Definir e referenciar um recurso

Este exemplo mostra como definir um recurso e fazer referência a ele usando um atributo em Extensible Application Markup Language (XAML).

Exemplo

O exemplo a seguir define dois tipos de recursos: a SolidColorBrush recursos e vários Style recursos. O recurso SolidColorBrush denominado MyBrush é usado para fornecer o valor de várias propriedades que recebem um valor do tipo Brush. Os recursos Style denominados PageBackground, TitleText e Label tem como destino tipos específicos de controle. Os estilos definem uma variedade de diferentes propriedades nos controles de destino, quando o recurso de estilo é referenciado por chave de recurso e é usado para definir a propriedade Style de vários elementos-controle específicos definidos em XAML.

Observe que uma das propriedades dentro dos "setters" do estilo Label faz referência também ao recurso MyBrush definido anteriormente. Essa é uma técnica comum, mas é importante lembre-se que os recursos são analisados e inseridos em um dicionário de recursos na ordem em que eles são fornecidos. Recursos também são solicitados pela ordem encontrada no dicionário se você usar a Extensão de marcação StaticResource para fazer referência a eles de dentro de outro recurso. Certifique-se de que qualquer recurso a que você faz referência tenha definido anteriormente na coleção de recursos. Se necessário, você pode contornar a ordem estrita de criação de refererências de recursos usando uma Extensão de marcação DynamicResource para fazer referência ao recurso em tempo de execução, mas você deve estar ciente que essa técnica DynamicResource tem consequências para o desempenho do aplicativo. Para obter detalhes, consulte:Visão geral sobre Recursos.

<Page Name="root"
  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml">
  <Page.Resources>
    <SolidColorBrush x:Key="MyBrush" Color="Gold"/>
    <Style TargetType="Border" x:Key="PageBackground">
      <Setter Property="Background" Value="Blue"/>
    </Style>
    <Style TargetType="TextBlock" x:Key="TitleText">
      <Setter Property="Background" Value="Blue"/>
      <Setter Property="DockPanel.Dock" Value="Top"/>
      <Setter Property="FontSize" Value="18"/>
      <Setter Property="Foreground" Value="#4E87D4"/>
      <Setter Property="FontFamily" Value="Trebuchet MS"/>
      <Setter Property="Margin" Value="0,40,10,10"/>
    </Style>
    <Style TargetType="TextBlock" x:Key="Label">
      <Setter Property="DockPanel.Dock" Value="Right"/>
      <Setter Property="FontSize" Value="8"/>
      <Setter Property="Foreground" Value="{StaticResource MyBrush}"/>
      <Setter Property="FontFamily" Value="Arial"/>
      <Setter Property="FontWeight" Value="Bold"/>
      <Setter Property="Margin" Value="0,3,10,0"/>
    </Style>
  </Page.Resources>
  <StackPanel>
    <Border Style="{StaticResource PageBackground}">
      <DockPanel>
        <TextBlock Style="{StaticResource TitleText}">Title</TextBlock>
        <TextBlock Style="{StaticResource Label}">Label</TextBlock>
        <TextBlock DockPanel.Dock="Top" HorizontalAlignment="Left" FontSize="36" Foreground="{StaticResource MyBrush}" Text="Text" Margin="20" />
        <Button DockPanel.Dock="Top" HorizontalAlignment="Left" Height="30" Background="{StaticResource MyBrush}" Margin="40">Button</Button>
        <Ellipse DockPanel.Dock="Top" HorizontalAlignment="Left" Width="100" Height="100" Fill="{StaticResource MyBrush}" Margin="40" />
      </DockPanel>
    </Border>
  </StackPanel>
</Page>

For the complete sample, see Definindo um exemplo de recursos.

Consulte também

Tarefas

Definindo um exemplo de recursos

Conceitos

Visão geral sobre Recursos

Styling and Templating