Domanda

Ho UserControls che contiene altri controlli. Voglio che se imposto un colore di primo piano per UserControl, tutti i controlli figlio lo ereditano automaticamente. Ho lo stesso problema con lo stile / la dimensione del carattere.

Posso impostare queste proprietà in qualche modo su auto / ereditare? È possibile impostare tutti i sottocontrolli senza un ciclo?

È stato utile?

Soluzione

Puoi creare dizionari di risorse per definire stili predefiniti a livello globale.

Puoi anche fare riferimento a un dizionario di risorse o definire uno stile in qualsiasi oggetto.

In entrambi i casi tali stili si applicheranno a tutti gli oggetti figlio che non hanno uno stile esplicitamente definito ...

Esempio:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
    <!--Default styles that will apply to any object of the specified type (if it doesn't have style set locally)-->
    <Style TargetType="Label" >
        <Setter Property="FontWeight" Value="Bold"/>
        <Setter Property="Margin" Value="0"/>
        <Setter Property="Padding" Value="0"/>
    </Style>
</ResourceDictionary>

Altri suggerimenti

Cerca di utilizzare le impostazioni di Stili e BasedOn.

Di recente ho scritto un esempio di qualcosa di simile che si trova qui . Purtroppo la domanda era relativa a Silver Lite, quindi non ha risposto alla domanda, ma penso che possa darti alcune idee su dove cercare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top