2010-07-13 5 views
0

Je dois placer des icônes sur une image de la carte. Étant donné que l'image de la carte est plus grande que ma résolution d'écran 1280 x 1024, une barre de défilement horizontale est affichée. J'utilise Location x et y pour placer des icônes, mais le problème est le suivant: placer une icône à l'emplacement (0, 0) lorsque la barre de défilement horizontale est à la position la plus à gauche est différente de lorsque la barre de défilement horizontale est à la position la plus à droite ...coordonnées de l'écran avec une barre de défilement horizontale

Si je déplace la barre de défilement sur l'axe des x (droite) 10 alors en plaçant une icône à (0, 0), devrait être (0, 0) mais il est placé à (10, 0).

Dans ce cas, y a-t-il une approche différente? ou devrais-je considérer combien de barre de défilement a bougé? si oui, comment je fais?

J'espère que mon explication est logique.

Merci,

Répondre

0

Oui, il est un peu ennuyeux. Si le contrôle de conteneur prend en charge le défilement, vous devez tenir compte de sa position actuelle chaque fois que vous définissez l'emplacement sur un contrôle enfant. Supposons que vous utilisez le défilement automatique et que vous souhaitiez placer un enfant à x, y. Ensuite, votre conteneur de contrôle pourrait utiliser un code comme celui-ci:

Point p = new Point(x, y); 
p.Offset(AutoScrollPosition); 
child.Location = p; 
Questions connexes