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 :

Detection de l'écran actuel (cas multi-écran)


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Août 2010
    Messages : 188
    Par défaut Detection de l'écran actuel (cas multi-écran)
    Bonjour,

    Je travail en Multi-écran et j'aimerai récupérer la résolution de l'écran actuelle ou se situe mon application

    J'ai le début du code mais pas sa suite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    using System.Windows.Forms;
    int Width = Screen.******
    ou sinon j'avais trouver cela mais bon ici je donne un écran fixe et non celui sur lequel est actuellement mon application
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    using System.Windows.Forms;
    int Height = ((Screen)Screen.AllScreens.GetValue(2)).Bounds.Height
    Il y aurait bien eu cela si sur les sites sur lesquels j'ai trouver se bout de code aurait eu la jugeote de réfléchir que PrimaryScreen c'est l'écran principale et non le current
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int Width = Screen.PrimaryScreen.Bounds.Width;
    Merci de votre aide

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Pour récupérer l'écran où se trouve ton application, le plus simple est d'utiliser la méthode Screen.FromControl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Screen s = Screen.FromControl(laFenetre);
    int width = s.Bounds.Width;

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Août 2010
    Messages : 188
    Par défaut
    Je suis sur du WPF avec une architecture MVVM cela fait la différence ou pas ??? car je n'arrive pas a mettre en place la fonction.

    l'appel de la fenêtre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Window myWindow = new myWindow ();
    ViewModelBase viewModelMyWindow = new viewModelMyWindow(myWindow);
    viewModelMyWindow.RequestClose += myWindow.Close;
    myWindow.DataContext = viewModelMyWindow  ;
     
    myWindow.Show();
    le ViewModel de ma fenêtre
    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
    private object myWindow;
     
    public viewModelMyWindow(object sender)
    {
        myWindow = sender;
    }
     
    public int myMethod()
    {
        int Height;
        if (WindowState == "Maximized")
        {
            Height = Screen.FromControl(myWindow).Bounds.Height;
        }
    }
    J'ai copier rapide ceux a quoi ressemble mon dernier code.

    Merci

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Monkey56 Voir le message
    Je suis sur du WPF avec une architecture MVVM cela fait la différence ou pas ???
    Ben la classe Screen vient de Windows Forms, il faut donc ajouter une référence à l'assembly System.Windows.Forms.

    Sinon, c'est bizarre ton code... normalement on n'a jamais de référence à l'interface graphique dans le ViewModel. Tu veux faire quoi exactement ? Contrôler la hauteur de la fenêtre ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Août 2010
    Messages : 188
    Par défaut
    J'ai dans une fenêtre des éléments qui se redimensionne selon la taille de la fenêtre hors cela ne marche pas quand ma fenêtre est maximiser.

    Pour cela que quand ma fenêtre est maximiser j'aimerai récupérer la résolution de l'écran sur lequel la fenêtre est maximiser afin de recalculer la taille d'affiche de certains de mes éléments.

    PS: cela fait 3 mois que je découvre le WPF et MVVM par la même occasion :p donc encore pas mal de lacune la dessus.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Monkey56 Voir le message
    J'ai dans une fenêtre des éléments qui se redimensionne selon la taille de la fenêtre hors cela ne marche pas quand ma fenêtre est maximiser.
    Le fait que la fenêtre soit maximisée ne devrait rien changer... à moins que tu n'utilises explicitement la largeur et la hauteur pour calculer la taille de tes éléments. Si tu utilises correctement les contrôles de layout (Grid, StackPanel, DockPanel, etc), tout devrait bien se passer

Discussions similaires

  1. Multi-écran et position d'écran
    Par Damascus06 dans le forum C#
    Réponses: 2
    Dernier message: 17/08/2010, 11h15
  2. Détéction écran actif en Multi-écran
    Par splash68 dans le forum ASP
    Réponses: 0
    Dernier message: 04/01/2010, 16h18
  3. Multi-écrans
    Par Martin Guélat dans le forum Composants
    Réponses: 6
    Dernier message: 04/05/2006, 11h56
  4. Affichage plein écran en multi-écrans
    Par Martin Guélat dans le forum Périphériques
    Réponses: 4
    Dernier message: 12/04/2006, 11h20
  5. OpenGL et les cartes multi-écrans
    Par jcs2 dans le forum OpenGL
    Réponses: 1
    Dernier message: 14/02/2006, 14h08

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