Je tente d'enregistrer la position d'une boîte de dialogue personnalisée dans le registre des utilisateurs, de sorte que lorsqu'ils rechargent la même boîte de dialogue, elle apparaît au même emplacement que celui précédemment déplacé ou redimensionné. Je sauvegarde la position de la fenêtre X position Y Largeur et hauteur. Tout fonctionne correctement sauf lorsque le dialogue est réduit. Si la boîte de dialogue est réduite et que l'utilisateur clique avec le bouton droit de la souris sur la représentation des boîtes de dialogue dans la barre des tâches (Windows 7), il peut cliquer sur "fermer cette fenêtre". Curieusement, le numéro -32030 est enregistré dans le registre comme les positions X et Y, mais la largeur et la hauteur sont enregistrées correctement. Toute idée d'où ce numéro vient et que faire dans cette situation thxPosition de la fenêtre réduite dans WPF
1
A
Répondre
6
Vous voulez quelque chose comme ceci lorsque vous enregistrez la position de la fenêtre:
if (this.WindowState == WindowState.Normal)
{
Properties.Settings.Default.Top = Top;
Properties.Settings.Default.Left = Left;
Properties.Settings.Default.Height = Height;
Properties.Settings.Default.Width = Width;
}
else
{
Properties.Settings.Default.Top = RestoreBounds.Top;
Properties.Settings.Default.Left = RestoreBounds.Left;
Properties.Settings.Default.Height = RestoreBounds.Height;
Properties.Settings.Default.Width = RestoreBounds.Width;
// Check for WindowState.Maximized or WindowState.Minimized if you
// need to do something different for each case (e.g. store if application
// was Maximized
}
Le bit important est le RestoreBounds
que vous avez besoin lorsque la fenêtre est agrandie ou réduite au minimum. Le code peut probablement être refactorisé pour le rendre plus efficace, mais vous avez l'idée.
3
Je suppose que vous mettez à jour la position de la fenêtre lorsque la fenêtre est fermée? Il y a quelques solutions si c'est le cas.
1) Enregistrer la position de la fenêtre sur un événement différent, comme lorsque la fenêtre est redimensionnée ou déplacée. 2) Vérifiez si la fenêtre est minimisée avant d'enregistrer les positions X et Y.
Exemple:
switch (this.WindowState)
{
case WindowState.Maximized:
// don't update the X,Y
break;
case WindowState.Minimized:
// don't update the X,Y
break;
case WindowState.Normal:
// DO update the X,Y
break;
}
Questions connexes
- 1. Excel Interop: Restauration fenêtre réduite
- 2. Notifier la fenêtre réduite d'une occurrence d'événement dans une applet
- 3. Position de la fenêtre dans Xlib
- 4. comment envoyer la souris cliquez sur la fenêtre réduite?
- 5. Position UIElement par rapport à la fenêtre
- 6. Détecter la fenêtre du navigateur Maximisée/Réduite avec Javascript
- 7. C# Winform taille réduite en résolution réduite
- 8. fenêtres WPF Position
- 9. Comment ouvrir à nouveau la fenêtre contextuelle réduite
- 10. Position de la fenêtre de notification
- 11. Automatisation de l'interface graphique de WIndows sur une fenêtre réduite
- 12. Position de la fenêtre d'un fichier CHM
- 13. Comment détecter la position de la fenêtre dans vim
- 14. Réduire la fenêtre de UserControl dans WPF
- 15. Interaction de la fenêtre/Messagerie dans WPF
- 16. WPF - Contrôle 2ème fenêtre de la 1ère fenêtre
- 17. Tri dans la fenêtre datacontext dans WPF
- 18. Sélection réduite dans Opera
- 19. Comment faire pour afficher une fenêtre wxPython réduite
- 20. fenêtre Win32 dans WPF
- 21. Déplacer l'image sur la fenêtre WPF
- 22. Modification de la position de la fenêtre AIR (en AS3)?
- 23. Acquisition de la position de la fenêtre Internet Explorer
- 24. Fenêtre d'affichage WPF avant la fenêtre principale
- 25. Avoir une fenêtre wpf dans une autre fenêtre wpf
- 26. Afficher la fenêtre dans Application_Startup. Wpf
- 27. effacer tout usercontrol dans la fenêtre wpf
- 28. Création d'une plage réduite à partir d'une position de pixel dans FF/Webkit
- 29. Déterminer la position de la fenêtre du navigateur en JavaScript?
- 30. WPF Window Position