Domanda

Voglio che la mia applicazione WPF sia personalizzabile, applicando un determinato modello XAML e che le modifiche siano ampie a livello di applicazione, anche per controlli dinamici o controlli che non sono nemmeno nella struttura visiva / logica.

Cosa posso usare per realizzare questo tipo di funzionalità? Esistono buone risorse o tutorial che mostrano come è possibile eseguire questa specifica attività?

È stato utile?

Soluzione

L'approccio di base da adottare è l'utilizzo di risorse in tutta l'applicazione e la sostituzione dinamica delle risorse in fase di esecuzione.

Vedi http://www.nablasoft.com/alkampfer/index.php/2008/05/22/simple-skinnable-and-theme-management-in-wpf-user-interface/ per l'approccio di base

Altri suggerimenti

La sostituzione della risorsa funzionerà ma ho trovato "skinning strutturale" per essere più potente! Maggiori informazioni su CodeProject ...

http://www.codeproject.com/KB/WPF/podder1.aspx

Ho trovato il modo di applicare modelli generici a tutti i controlli senza usare i tasti modello. La soluzione è utilizzare il tipo di controllo come chiave di stile.

Esempio:

 <Application.Resources>
    <Style x:Key="{x:Type Button}" TargetType="{x:Type Button}">
        <Setter Property="Button.Background" Value="CornflowerBlue"/>
        <Setter Property="Button.Template">
            <Setter.Value>
                <ControlTemplate x:Name="MyTemplate">
                    ...
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Application.Resources>

qui la chiave di stile è x: Key = " {x: pulsante Tipo} " ;, quindi lo stile verrà applicato a tutti i controlli del pulsante di tipo senza che il controllo dichiari la proprietà Style come una risorsa statica o dinamica.

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