2009-12-07 6 views
1

J'ai créé une application qui affiche une fenêtre la plus élevée sur chaque moniteur, pour couvrir tous les endroits disponibles. Puis, je voudrais permettre de dessiner un rectangle sur les fenêtres. Donc, je crée un rectangle que j'ajoute à la fenêtre lorsque la souris bouge et que la souris clique ... Cela fonctionne sauf quand je dessine un rectangle qui commence sur une fenêtre et se termine sur une autre. Bien sûr, parce que ce n'est pas la même fenêtre ...Dessin sur écran multiple avec WPF

Comment puis-je faire pour dessiner sur les deux fenêtres en même temps?

Merci pour votre aide,

Répondre

0

Vous pouvez créer une fenêtre qui stretchs sur les deux écrans.

Utilisez la collection Screens dans System.Windows.Forms (ou n'importe où dans WPF) et la propriété WorkingArea pour calculer les extensions correctes de la fenêtre.

Faites attention aux configurations multi-écrans où les écrans principaux sont l'autre côté des écrans secondaires ou si les écrans sont empilés les uns sur les autres.

Nous le faisons avec succès dans notre application.

+0

Avec cela, je couvrirais peut-être l'espace inutilisé, par exemple si un écran est plus grand que l'autre – Tim

+0

qui est un piège potentiel avec cette approche. Nous avons un certain contrôle sur l'environnement dans lequel notre application est déployée, donc c'est moins un problème. –

0

Une autre approche (et probablement meilleure) consiste à avoir les données sur les rectangles stockés dans une classe de modèle (en utilisant une approche MVVM). Ensuite, chaque vue regarde une partie séparée d'un canevas virtuel. De cette façon, ils écoutent tous deux les mises à jour des données du modèle et dessinent leur section de l'affichage en conséquence.