2011-11-07 1 views
1

Après the guide ici, j'ai créé une application WPF en plein écran. Mais j'ai rencontré un problème: la résolution des écrans de différentes tailles &. Par exemple, je veux mettre plusieurs sprites sur l'écran en tant que boutons; mais ils sont situés à des positions différentes dans chaque écran, et même différent de ce qui est montré dans le concepteur XAML.Résolution pour l'application WPF en plein écran

J'ai cherché partout sans une idée reçue. Comment puis-je résoudre ce problème? (pour que les boutons apparaissent à l'endroit exact (au centre), et mieux, aidez le concepteur de xaml à refléter exactement ce qui se passera quand le programme fonctionnera). Toute aide serait appréciée.

MISE À JOUR: Je définis ma page comme Canvas à l'intérieur de l'élément Window. En fait j'aime plus Canvas, parce que je peux facilement mettre mes sprites n'importe où, pas comme une grille.

+0

Comment définissez-vous votre disposition? – SLaks

Répondre

3

En général, vous ne devez pas utiliser de valeurs de pixels dans WPF. Au lieu de cela, vous devez mettre en forme votre contenu en <Grid> s avec des lignes et des colonnes, et il se développera automatiquement pour remplir l'écran (en fonction des alignements et des définitions de lignes/colonnes).

+0

Je définis ma page comme à l'intérieur de l'élément . En fait j'aime plus Canvas, parce que je peux facilement mettre mes sprites n'importe où, pas comme une grille. –

+1

@ HoàngLong et c'est pourquoi vous avez des problèmes de mise à l'échelle à différentes résolutions. Les solutions de type "Canvas" ne peuvent évoluer que si vous savez que le format ne changera pas. Ce n'est pas vrai dans le monde du PC. –

+0

@ HoàngLong: Ne pas utiliser de toile; cela vous donnera un monde de douleur pour la mise à l'échelle. Le système de mise en page de WPF est beaucoup plus puissant, si vous prenez le temps et comprenez comment cela fonctionne. – SLaks

1

Évitez d'utiliser le canevas. Aussi, ne comptez pas trop sur le concepteur pour construire votre mise en page. Utiliser Grids, Stackpanels et/ou Dockpanels donnera de bien meilleurs résultats (et une mise à l'échelle lors du redimensionnement de votre fenêtre). Par exemple, si vous n'utilisez que le concepteur et faites glisser tous vos éléments, le concepteur met souvent des marges énormes un peu au hasard et cela ne sera pas toujours à l'échelle si vous redimensionnez votre fenêtre.

+0

Dans mon cas, j'ai besoin de construire une zone qui doit être la même dans le concepteur lorsque le programme est en cours d'exécution. Le fait que ce que le concepteur montre soit différent de ce que montre le programme (c'est un peu juste par rapport au concepteur) m'énerve, puisque je dois faire l'interface exactement comme le design. –