IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

Solutions de contrôles et templates


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut Solutions de contrôles et templates
    Bonjour tout le monde,

    Je suis en train de faire une solution visual studio regroupant des contrôles pour Silverlight.

    A côté j'ai une solution silverlight classique qui utilise ces composants.
    Jusque la aucun problème.

    La ou j'ai petit souci d'architecture c'est au niveau des templates :
    En effet, ma page XAML qui contient les templates est au niveau de l'application Silverlight et ça , ça me plait pas.

    J'aimerais que ce fichier soit également dans la solution de contrôles car c'est elle qui l'utilise.

    Donc ma question :

    Quelqu'un parmi vous saurait il comment utiliser par défaut les templates qui sont dans un xaml, dans une solution de contrôles silverlight afin de ne référencer aucun fichier xaml au niveau de l'application ?

    Clairement : je veux pouvoir faire glisser mon listbox étendu et qu'il soit affecté automatiquement du style ou alors que la page de templates soit automatiquement ajoutée : comme chez les éditeurs de composants.

  2. #2
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    Pourquoi ne pas référencer tes styles dans un ResourceDictionary et le mettre dans ta solution de controle?

  3. #3
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Ben il suffit de mettre des templates par defaut dans la fichier generic.xaml dans le repertoire themes (avec son Build Action a Resource) de ta solution de controle et tout fonctionne.

    Tu n'aura pas besoin d'ajouter ton fichier xaml dans les solutions qui utilisent ta librairie (sinon j'imagine bien le bordel en utilisant le Silverlight Toolkit).

  4. #4
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    Il me manquait en effet le passage en mode "resource" mais aussi d'autres modifs car j'ai des sous-styles.

    Par exemple sur mon datagrid j'ai du faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      <Setter Property="ColumnHeaderStyle" Value="{StaticResource MonDataGridColumnHeaderStyle}"/>
    Avec le generic bien sur le style ne s'appliquait plus automatiquement.

    Merci pour votre aide,

  5. #5
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    Non en fait ça ne marchait pas... j'avais mes 2 xaml référencés et quand j'ai enlevait celui de l'appli, tous les styles n'étaient pas pris en compte.

    L'autre souci c'est que j'ai des UserControls dans ma solution de contrôles qui partagent le même style...

    Bref, j'ai donc fait cette mini classe qui me résoud tout ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
        public  class ManageStyles
        {
            private static ResourceDictionary RD = null;
     
            public static ResourceDictionary GetGenericRD()
            {
                if (RD == null)
                    RD = new ResourceDictionary() { Source = new Uri("/AssemblyControls;component/Themes/default.xaml", UriKind.Relative) };
     
                return RD;
            }
     
            public static ResourceDictionary ReloadGenericRD()
            {
                RD = null;
                return ManageStyles.GetGenericRD();
            }
     
            public static ResourceDictionary GetCustomRD(Uri LocUri)
            {
                RD =  new ResourceDictionary() { Source = LocUri };
                return ManageStyles.GetGenericRD();
            }
     
        }
    Par défaut mes composants utilisent GetGenericRD

    Dans l'appli si je dois changer je ferais un GetCustomRD(Uri LocUri)

    Et si vraiment je dois revenir aux styles par défaut : ReloadGenericRD

    Car bien sur il faut aussi pouvoir modifier les styles à partir de nouveaux dans l'appli.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. défintion d'un template pour un contrôle
    Par TERRIBLE dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 12/05/2009, 20h35
  2. Réponses: 1
    Dernier message: 07/07/2008, 13h56
  3. Réponses: 2
    Dernier message: 20/05/2008, 10h03
  4. Solution SharePoint: workflow, list template et jobtimer
    Par wwridee dans le forum SharePoint
    Réponses: 0
    Dernier message: 15/05/2008, 15h48
  5. La solution PHP+XML+XSL=Template est-elle viable ?
    Par TempusFugit dans le forum Langage
    Réponses: 1
    Dernier message: 03/10/2007, 13h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo