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

C# Discussion :

Détecter OS puis appliquer un template en fonction de celui-ci WPF


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2013
    Messages : 16
    Par défaut Détecter OS puis appliquer un template en fonction de celui-ci WPF
    Bonjour,

    J'aimerai savoir comment faire pour détecter l'os sur lequel mon application tourne et après, mettre tel ou tel template.
    Je m'exprime, si l'os est XP, je mettrai une couleur spécifique à mes éléments plus un margin (entre autre) différent que si l'os était sous Seven.
    A noter que je ne veux pas modifier les thèmes comme utiliser les thèmes Luna ou Aero. Juste une action sur un template.
    Pour information, l'application est en WPF.

    Merci d'avance

  2. #2
    Membre très actif
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Billets dans le blog
    9
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    My.Computer.Info.OSFullName

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2013
    Messages : 16
    Par défaut
    Merci pour le retour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var os = Environment.OSVersion;
                if (os.Version.Major <= 5)
    J'ai tenté cette partie de code. Comment après l'insérer dans un template en WPF?
    Ex :
    Si j'ai une version XP :
    Margin = 1
    BorderThickness = 3
    ...
    Si j'ai une version Seven :
    Margin = 0
    BorderThickness = 4
    ...

  4. #4
    Membre très actif
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Billets dans le blog
    9
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    If (My.Computer.Info.OSFullName.Contains("Windows 7")
       {
          //Ton Code pour 7 
       }
    If (My.Computer.Info.OSFullName.Contains("Windows XP")
       {
          //Ton Code pour XP
       }

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2013
    Messages : 16
    Par défaut
    Oui pour le code behind je peux faire ça mais c'était plus pour la partie xaml que je galérais...

    L'exemple ci-dessous fonctionne pour les deux cas (XP ou Seven), MAIS (il y en a toujours un) j'ai mes listviews ont des petits décalages que j'aimerai arranger.
    Si je touche au margin du Seven, le XP va être impacter et vice versa.
    Le but c'est d'avoir un template type XP et un autre Seven.

    Ci-dessous un exemple.
    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
     
                                <ListView.ItemContainerStyle>
                                    <Style TargetType="{x:Type ListViewItem}">
                                        <Setter Property="Background" Value="Transparent" />
                                        <Setter Property="Template">
                                            <Setter.Value>
                                                <ControlTemplate TargetType="{x:Type ListViewItem}">
                                                    <Border
                             BorderBrush="Transparent"
                             BorderThickness="0"
                             Background="{TemplateBinding Background}">
                                                        <GridViewRowPresenter HorizontalAlignment="Stretch" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Width="Auto" Margin="0" Content="{TemplateBinding Content}"/>
                                                    </Border>
                                                </ControlTemplate>
                                            </Setter.Value>
                                        </Setter>
                                    </Style>
                                </ListView.ItemContainerStyle>
    Je pense être plus précis cette fois ci.

    Merci pour les retours en tout cas

  6. #6
    Membre très actif
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Billets dans le blog
    9
    Par défaut
    C'est mieux de mettre deux Template un pour 7 et l'autre pour XP et a chaque vérification tu charge le Template concerné

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2013
    Messages : 16
    Par défaut
    Voici ce que j'ai tenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(System.Environment.OSVersion.Version.Major >= 6)//Version supérieur à XP
                {
                    Liste1.Margin = new Thickness(5, -1, 5, -1);
                    Liste2.Margin = new Thickness(5, -1, 5, -1);
                    Liste3.Margin = new Thickness(5, -1, 5, -1);
                }
    Le problème c'est que le margin qui m'intérèsse se trouve dans un datatemplate et je ne peux y accéder.

    J'ai tenté aussi de faire deux templates, mais je n'arrivais pas à exprimer ma condition pour passer soit sur le template XP soit sur le template Seven

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/01/2008, 21h22
  2. comment appliquer un calcul en fonction du tableau ?
    Par toshiro92 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 15/11/2007, 18h10
  3. [formulaire]appliquer un filtre en fonction d'une liste
    Par hansaplast dans le forum Access
    Réponses: 1
    Dernier message: 24/07/2006, 12h31
  4. Détecter l'appui sur la touche de fonction F2
    Par titiyo dans le forum Composants VCL
    Réponses: 6
    Dernier message: 18/06/2003, 11h07
  5. appliquer plusieurs templates
    Par Manu_Just dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 04/04/2003, 16h26

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