Setter.Property Proprietà

Definizione

Ottiene o imposta la proprietà da applicare a Value .

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

void Property(DependencyProperty value);
public DependencyProperty Property { get; set; }
var dependencyProperty = setter.property;
setter.property = dependencyProperty;
Public Property Property As DependencyProperty
<Setter Property="propertyName"/>

Valore della proprietà

Oggetto DependencyProperty a cui verrà applicato il valore. Il valore predefinito è Null.

Esempio

In questo esempio viene illustrato come usare istruzioni Setter in uno stile per gli elementi TextBlock .

<StackPanel>
    <StackPanel.Resources>
        <!-- Create a Style for a TextBlock to specify that the
             Foreground equals Navy, FontSize equals 14, and
             VerticalAlignment equals Bottom. -->
        <Style TargetType="TextBlock" x:Key="TextBlockStyle">
            <Setter Property="Foreground" Value="Navy"/>
            <Setter Property="FontSize" Value="14"/>
            <Setter Property="VerticalAlignment" Value="Bottom"/>
        </Style>
    </StackPanel.Resources>

    <!-- Apply the TextBlockStyle to 2 different TextBlocks. -->
    <TextBlock Style="{StaticResource TextBlockStyle}" Text="Hello"/>
    <TextBlock Style="{StaticResource TextBlockStyle}" Text="World"/>
</StackPanel>

È anche possibile applicare setters ai valori delle proprietà associati specificando il nome della proprietà associata in AttachedPropertyProvider. Modulo PropertyName . Ad esempio, per usare un setter per la proprietà associata Canvas.Left, usare Questo codice XAML.

<Setter Property="Canvas.Left" Value="100"/>

Commenti

È necessario specificare sia le proprietà Proprietà che Valore in un setter. In caso contrario, viene generata un'eccezione (un'eccezione di analisi o un errore di runtime, a seconda che il setter venga creato in XAML o modificato nel codice).

Se si accede a un'istanza di Setter usando il codice, non è possibile modificare il valore di una proprietà di un'istanza di Setter se il valore della proprietà IsSealed in uno stile padre è true. Questo è segnalato anche dalla proprietà IsSealed su un singolo Setter. Il sistema imposta queste proprietà su true quando il runtime applica stili agli elementi dell'interfaccia utente e li visualizza nell'interfaccia utente. Il tentativo di modificare un setter bloccato genera un errore di runtime.

È possibile usare un Setter per assegnare uno stile a una proprietà associata. In questo caso il nome della proprietà di dipendenza è un nome qualificato in XAML che denomina anche il tipo di definizione della proprietà associata. Ad esempio, <Setter Property="AutomationProperties.LiveSetting" Value="Polite" /> può essere usato per impostare il valore della proprietà associata AutomationProperties.LiveSetting all'interno dello stile per qualsiasi controllo o elemento dell'interfaccia utente.

Nota

Il parser XAML accetta anche i nomi delle proprietà di dipendenza che includono una classe idonea. Ad esempio, il parser interpreta "Button.Background" o " Control.Background " come riferimento alla proprietà Background in uno stile per un pulsante. La qualificazione in base alla classe non è necessaria e comporta potenzialmente confusione nel markup. Se si esegue la migrazione di XAML da altre piattaforme, è possibile che si verifichino o usi nomi di proprietà qualificati.

Identificazione delle proprietà di dipendenza

Come indicato, è possibile usare solo un Setter per modificare una proprietà tramite uno stile se la proprietà in questione è una proprietà di dipendenza. Le proprietà dell'interfaccia utente in cui è presente uno scenario per l'applicazione di uno stile sono quasi sempre implementate come proprietà di dipendenza dalle Windows Runtime e le proprietà di tabella impostate che non sono una proprietà di dipendenza sugli elementi dell'interfaccia utente sono piuttosto rare. Se si vuole verificare che una proprietà Windows Runtime sia una proprietà di dipendenza, controllare gli elenchi di membri per il tipo che definisce originariamente la proprietà. Se una proprietà è in realtà una proprietà di dipendenza, l'identificatore della proprietà di dipendenza esisterà anche in tale classe e tale identificatore ha lo stesso nome della proprietà stessa, ma con la proprietà suffisso aggiunta. Questo identificatore di proprietà di dipendenza è una proprietà di sola lettura statica utile in alcuni scenari di proprietà di dipendenza tramite codice. Ad esempio, è possibile usare tale valore di identificatore nel codice per modificare un valore Setter.Property esistente, purché lo stile padre non sia già bloccato.

Uso di un setter per una proprietà personalizzata

Per le proprietà personalizzate, è necessario dichiarare la proprietà come proprietà di dipendenza se si desidera supportare stili, nonché per altri scenari, ad esempio data binding o animazione. Se si esegue questa operazione, la proprietà personalizzata è supportata anche per lo stile in qualsiasi stile con targetType che fa riferimento al tipo personalizzato. Per altre informazioni, vedere Proprietà delle dipendenze personalizzate o TargetType.

Si applica a