Compartilhar via


FrameworkContentElement.Resources Propriedade

Definição

Obtém ou define o dicionário de recursos atual definido localmente.

public:
 property System::Windows::ResourceDictionary ^ Resources { System::Windows::ResourceDictionary ^ get(); void set(System::Windows::ResourceDictionary ^ value); };
public System.Windows.ResourceDictionary Resources { get; set; }
[System.Windows.Markup.Ambient]
public System.Windows.ResourceDictionary Resources { get; set; }
member this.Resources : System.Windows.ResourceDictionary with get, set
[<System.Windows.Markup.Ambient>]
member this.Resources : System.Windows.ResourceDictionary with get, set
Public Property Resources As ResourceDictionary

Valor da propriedade

Os recursos definidos localmente no momento. Esse é um dicionário de recursos, em que os recursos dentro do dicionário são acessados por chave.

Atributos

Exemplos

O exemplo a seguir estabelece uma Resources coleção em um FlowDocument elemento raiz. FlowDocument é uma opção típica porque é uma das poucas FrameworkContentElement classes que fazem sentido como um elemento raiz, e os recursos geralmente são armazenados na raiz da página ou em níveis ainda mais altos, como no aplicativo.

<FlowDocument
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class=" SDKSample.Page2">
  <FlowDocument.Resources>
    <Style TargetType="{x:Type Paragraph}" x:Key="BluePara">
      <Setter Property="Background" Value="Blue"/>
      <Setter Property="FontSize" Value="18"/>
      <Setter Property="Foreground" Value="LightBlue"/>
      <Setter Property="FontFamily" Value="Trebuchet MS"/>
    </Style>
  </FlowDocument.Resources>
  <Paragraph Style="{StaticResource BluePara}">Lorem ipsum etc.</Paragraph>
</FlowDocument>

Comentários

Dicionários de recursos que podem ser definidos completamente ou parcialmente em XAML (Extensible Application Markup Language) normalmente são criados como um elemento de propriedade e normalmente estão no elemento raiz para qualquer página individual ou para o aplicativo. Colocar o dicionário de recursos nesse nível facilita a localização de elementos filho individuais na página (ou em qualquer página, no caso do aplicativo). Na maioria dos cenários de aplicativo, recomendamos que os estilos sejam definidos como elementos de objeto dentro de um dicionário de recursos ou sejam definidos como recursos externos para que todo o recurso de estilo possa ser independente (essa abordagem ajuda a separar as responsabilidades do designer das responsabilidades do desenvolvedor separando os arquivos físicos que precisam ser editados).

Observe que essa propriedade retorna apenas o dicionário de recursos declarado diretamente dentro desse elemento. Isso é diferente do processo de pesquisa de recursos real, em que um elemento filho pode acessar qualquer um dos recursos definidos em cada elemento pai, pesquisando recursivamente para cima.

Os recursos também podem ser referenciados por código de dentro da coleção, mas lembre-se de que os recursos criados em XAML definitivamente não estarão acessíveis até que depois Loaded seja gerado pelo elemento que declara o dicionário. Na verdade, os recursos são analisados de forma assíncrona e nem mesmo o Loaded evento é uma garantia de que você pode referenciar um recurso definido por XAML. Por esse motivo, você geralmente só deve acessar recursos definidos por XAML como parte do código em tempo de execução ou por meio de outras técnicas XAML, como estilos ou referências de extensão de recurso para valores de atributo. Quando você acessa recursos por meio de código, ele é essencialmente equivalente a uma referência DynamicResource feita de XAML.

O subjacente ResourceDictionary dá suporte aos métodos necessários para adicionar, remover ou consultar recursos de dentro da coleção usando código. A Resources propriedade é configurável para dar suporte ao cenário de substituição completa da coleção de recursos de um elemento para ser um novo ou diferente ResourceDictionary.

Observe que a sintaxe XAML mostrada não inclui um elemento para o ResourceDictionary. Este é um exemplo de sintaxe de coleção implícita; uma marca que representa o elemento de coleção pode ser omitida. Em vez disso, os elementos adicionados como itens à coleção são especificados. Para obter mais informações sobre coleções implícitas e XAML, consulte Sintaxe XAML em detalhes. Um caso em que um ResourceDictionary ainda é especificado explicitamente como um elemento é se você estiver introduzindo um dicionário mesclado, nesse caso, normalmente não há elementos filho para esse ResourceDictionary. Para obter detalhes, consulte Dicionários de recursos mesclados.

Uso do elemento propriedade XAML

<object>  
  <object.Resources>  
    oneOrMoreResourceElements  
  </object.Resources>  
</object>  

Valores XAML

oneOrMoreResourceElements
Um ou mais elementos de objeto, cada um dos quais define um recurso. Cada elemento de propriedade de recurso dentro de cada ResourceDictionary deve ter um valor exclusivo para a Diretiva x:Key, que serve como a chave exclusiva quando os valores são recuperados do ResourceDictionary.

Aplica-se a

Confira também