FrameworkElement.Resources Propriedade

Definição

Obtém o dicionário de recursos definido localmente. No XAML, você pode estabelecer itens de recurso como elementos de objeto filho de um frameworkElement.Resources elemento de propriedade, por meio da sintaxe de coleção implícita XAML.

ResourceDictionary Resources();

void Resources(ResourceDictionary value);
public ResourceDictionary Resources { get; set; }
var resourceDictionary = frameworkElement.resources;
frameworkElement.resources = resourceDictionary;
Public Property Resources As ResourceDictionary
<frameworkElement>
  <frameworkElement.Resources>
    oneOrMoreResourceElements
  </frameworkElement.Resources>
</frameworkElement>

Valor da propriedade

O dicionário atual definido localmente de recursos, em que cada recurso pode ser acessado por sua chave.

Exemplos

Este exemplo mostra uma definição XAML de um dicionário de Recursos simples que contém um item, um DataTemplate.

<Grid.Resources>
  <DataTemplate x:Key="CBTemplate">
    <Grid>
      <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
      </Grid.ColumnDefinitions>
      <Image Grid.Column="0" Width="50" Height="50" 
        Source="{Binding Photo}" Stretch="Fill"/>
      <TextBlock Grid.Column="1" Text="{Binding Title}" 
        Margin="10" HorizontalAlignment="Left" FontSize="20"/>
    </Grid>
  </DataTemplate>
</Grid.Resources>
<GridView ItemTemplate="{StaticResource CBTemplate}" .../>

Usar definições de recursos XAML e referências de recursos é a maneira típica de usar a propriedade Resources. Na maioria das vezes, o XAML sozinho pode lidar com cenários comuns de recursos. Mas você também pode usar a propriedade para acessar a API de coleção e, portanto, recuperar recursos com código de runtime, se isso for necessário para o seu cenário. Este exemplo mostra o Resources acesso de código à propriedade . Neste exemplo, as referências de Resources propriedade são embutidas e imediatamente seguidas por um uso do indexador que recupera um item ResourceDictionary com a chave RainbowBrushde cadeia de caracteres . Observe a conversão explícita; o valor retornado para itens do ResourceDictionary é sempre um objeto não tipado.

void MainPage::SetBGByResource(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
  Button^ b = safe_cast<Windows::UI::Xaml::Controls::Button^>(sender);
  b->Background = safe_cast<Windows::UI::Xaml::Media::Brush^>(this->Resources->Lookup("RainbowBrush"));
}
void SetBGByResource(object sender, RoutedEventArgs e)
{
  Button b = sender as Button;
  b.Background = (Brush)this.Resources["RainbowBrush"];
}
<Page.Resources>
...
  <LinearGradientBrush x:Key="RainbowBrush">
    <GradientStop Color="Red" Offset="0.05" />
    <GradientStop Color="Orange" Offset="0.23" />
    <GradientStop Color="Yellow" Offset="0.41" />
    <GradientStop Color="Green" Offset="0.59" />
    <GradientStop Color="Blue" Offset="0.77" />
    <GradientStop Color="Purple" Offset="0.95" />
 </LinearGradientBrush>
</Page.Resources>

Comentários

A principal finalidade dos itens em uma Resources coleção é fazer referência a eles de outras partes do seu XAML, usando uma referência de extensão de marcação {StaticResource} (ou a referência de extensão de marcação {ThemeResource} semelhante). Se você quiser acessar a Resources coleção em tempo de execução, poderá usar a API do modelo relevante para consultar, adicionar ou remover itens no ResourceDictionary.

Para obter mais informações e exemplos, consulte Referências de recursos ResourceDictionary e XAML.

Um ResourceDictionary é uma coleção chaveada, que se baseia em um modelo de IMap<K,V> se você estiver programando com extensões de componente do Visual C++ (C++/CX) ou um modelo TKey,TValue> IDictionary< se você estiver programando com C#. A API que você usa no código para trabalhar com o dicionário e seus itens reflete o modelo subjacente e, portanto, do idioma que você está usando para seu aplicativo.

O aplicativo também tem uma propriedade Resources , que pode ser usada para armazenar recursos que devem ser acessíveis a partir de mais de uma página no aplicativo. Os recursos para controles personalizados também podem ser armazenados em um arquivo XAML separado criado pelo modelo de projeto padrão de um controle modelo.

Os itens que você vê em uma coleção de recursos XAML não são necessariamente a totalidade dos recursos definidos por XAML disponíveis em runtime. Outros recursos estão disponíveis em runtime, devido à influência da propriedade MergedDictionaries em um ResourceDictionary. O MergedDictionaries valor pode introduzir outros dicionários, como os recursos definidos pelo sistema, como recursos dos modelos de controle XAML padrão. Recursos específicos do tema de runtime também estão disponíveis na propriedade ThemeDictionaries semelhante. Se você acessar uma coleção resources em runtime e consultar uma chave específica usando o indexador ou o Item método Lookup , poderá acessar e recuperar esses recursos. Para obter mais informações, consulte Referências de recursos de ResourceDictionary e XAML. Além disso, o Application.Resources pode fornecer recursos disponíveis para qualquer referência XAML no aplicativo e, portanto, estender os recursos em qualquer dicionário FrameworkElement.Resources fornecido.

Aplica-se a

Confira também