FrameworkElement.Style Proprietà

Definizione

Ottiene o imposta uno stile di istanza applicato per questo oggetto durante il layout e il rendering.

public:
 property Style ^ Style { Style ^ get(); void set(Style ^ value); };
Style Style();

void Style(Style value);
public Style Style { get; set; }
var style = frameworkElement.style;
frameworkElement.style = style;
Public Property Style As Style
<frameworkElement Style="{StaticResource styleResourceKey}"/>

Valore della proprietà

Stile applicato per l'oggetto, se presente; in caso contrario, null. Il valore predefinito per un FrameworkElement costruito per impostazione predefinita è null.

Commenti

L'impostazione diretta della Style proprietà non è il modo più comune per applicare uno stile all'aspetto di un elemento dell'interfaccia utente. Puoi invece influenzare l'aspetto di un elemento dell'interfaccia utente tramite una delle tecniche seguenti:

  • Spesso imposti le singole proprietà dell'interfaccia utente di un elemento dell'interfaccia utente come attributi in XAML. FrameworkElement.Style si applica solo all'elemento corrente e qualsiasi valore di un FrameworkElement.Style oggetto viene sovrascritto da un valore della proprietà locale, quindi l'impostazione del valore locale è più diretta e più prevedibile. Per altre info su come correlare un valore style e un valore di proprietà locale, vedi Panoramica delle proprietà di dipendenza.
  • Gli autori di controlli scrivono in genere un controllo che è temporaneo, ma viene fornito anche con un modello predefinito. L'app può usare il controllo e modificarne l'aspetto fornendo un nuovo ControlTemplate, che fa parte di uno stile definito nelle risorse. Questo stile viene in genere applicato usando la funzionalità di stile implicito , non impostando Style. Per altre info, vedi Applicazione di stili ai controlli.
  • Gli autori di controlli espongono anche proprietà che fanno riferimento a parti di un controllo che possono avere stili o valori applicati solo a tale parte, quindi non è necessario ripetere completamente il controllo. In questo caso si imposta una proprietà più specifica, non FrameworkElement.Style.
  • Il modello dello stato di visualizzazione reimposta spesso lo stile del controllo in fase di esecuzione in risposta alle modifiche apportate agli stati che si manifestano visivamente agli utenti. Ad esempio, i modelli di controllo hanno in genere uno stato "Attivo" che aggiunge un indicatore di stato attivo visivo all'aspetto del controllo in modo che un utente della tastiera possa vedere quale elemento nell'interfaccia utente ha lo stato attivo della tastiera corrente. Per altre info sul concetto di stato di visualizzazione, vedi Modelli di controllo XAML.

È possibile modificare i valori delle singole proprietà impostate all'interno di uno stile. Ad esempio, è possibile impostare la proprietà Template in fase di esecuzione anche se questa proprietà è stata impostata da uno stile. In alternativa, è possibile aggiungere setter alla raccolta in Setter. Tuttavia, non appena tale stile viene utilizzato da un oggetto caricato, lo stile deve essere considerato sealed. È possibile rilevare questo stato controllando il valore di IsSealed per .Style Uno stile viene considerato in uso non appena viene fatto riferimento a un oggetto caricato connesso all'albero degli oggetti di una pagina visualizzata dell'interfaccia utente. Un Style oggetto e il relativo Setters oggetto possono anche essere considerati sealed quando l'oggetto che utilizza tale stile genera l'evento Loaded . Il tentativo di modificare una singola proprietà di uno stile in uso, ad esempio una proprietà nell'insieme Setters , genera un'eccezione.

Le classi derivate da Control hanno un punto di ingresso aggiuntivo utile per controllare gli autori in relazione allo stile e all'applicazione modello. FrameworkElement definisce il callback virtuale OnApplyTemplate richiamato prima di Loaded. Le classi derivate da Control possono eseguire l'override di questo callback per regolare i valori delle proprietà impostati dai modelli prima che lo stile sia in uso.

Se viene eseguita una query in fase di esecuzione, la Style proprietà non restituisce stili provenienti da un modello applicato o stati di visualizzazione attivi. Restituisce solo gli stili impostati in modo esplicito dalla Style proprietà . Inoltre, non restituisce stili impliciti.

Si applica a