2011-09-25 3 views
0

Dans Mon application de formulaire Windows Je veux faire le titre du formulaire au milieu de sa barre (barre de titre) par exemple: si vous êtes sur Windows XP et ouvert votre mon ordinateur vous le trouverez dans la gauche de la barre de titre je veux par exemple faire mon titre au milieu de la même barremake windows former Titre au milieu de la barre de titre

Comment?

+0

Étape 1: installez [Windows 8 DP] (http://msdn.microsoft.com/fr-fr/windows/apps/br229516). Étape 2: Fait. C'est moche. – dtb

+0

: D Je l'ai déjà installé mais je veux que mon ancienne application l'utilise L'un de mes clients le souhaite: D – kartal

+0

Y a-t-il une raison pour que votre application se comporte différemment de toutes les autres applications qu'elle utilisera? –

Répondre

0

Il y a essentiellement trois options:

  1. Créer un contrôle personnalisé qui a le titre centré et approprié de minimiser/maximiser/fermer les boutons. Utilisez un de sans barre de titre et déposez votre contrôle personnalisé sur le dessus.

  2. Utilisez GDI + pour dessiner le titre et mettre à jour sa position à l'aide des événements de redimensionnement de formulaire. Total hack, même pas sûr que cela fonctionnerait.

  3. Calculez le nombre d'espaces requis pour centrer le titre en fonction de la largeur du formulaire, puis insérez-le avant le texte du titre. Lame solution, mais cela fonctionnerait et serait facile à mettre en œuvre.

+0

# 3 est probablement le meilleur HACK pour le faire paraître centré, je voudrais ajouter une chose cependant. Vous devez calculer le nombre d'espaces chaque fois que la fenêtre est redimensionnée et le faire en utilisant DrawString et la taille de l'image pour déterminer combien d'espaces vous avez besoin. –

+0

Le n ° 1 ne va pas fonctionner. Quant au non. 2, il y a tellement plus à personnaliser la zone non-client. Le n ° 3 est compliqué en ne connaissant pas la taille du chrome non-client. Il faudrait un certain effort pour y arriver. –

+0

Je ne sais pas pourquoi vous dites que # 1 ne fonctionnera pas. J'ai construit des fenêtres personnalisées de cette façon auparavant et il existe de nombreux exemples sur le web. Cela fonctionne vraiment bien. –

1

Cela n'est pas possible avec les propriétés de formulaire WinForms standard. D'un autre côté, vous pouvez créer un formulaire sans bordure et personnaliser vos propres frontières. Cela ressemble beaucoup à ce que les autres bibliothèques de skinning aussi, donc vous pouvez regarder dans différentes bibliothèques de skinning de fournisseurs si vous ne voulez pas vous embêter à écrire vos propres routines personnalisées.

+0

Skins est le meilleur moyen. Mais un autre est obtenir le message OnSize et définir la légende avec des espaces de premier plan. –