Comment puis-je contrôler l'épaisseur de la bordure et la couleur sur Windows Forms?

StackOverflow https://stackoverflow.com/questions/1244570

  •  12-09-2019
  •  | 
  •  

Question

Je sais que cela peut être contrôlé au niveau du système, mais je veux passer outre le réglage du système et avoir une certaine apparence pour que ma demande. Je suppose qu'il doit y avoir une fonction API Windows pour contrôler parce que je l'ai vu une autre application windows qui le fait.

(Il ne faut pas entrer dans les raisons pour lesquelles je ne devrais pas le faire)

Était-ce utile?

La solution

Si vous voulez une apparence personnalisée pour votre application, je voudrais juste faire ma forme sans frontières et gérer tout moi-même, que ce soit en tirant sur la forme elle-même en cas de peinture, ou bien les contrôles se déplacer (panneaux, etc.) dans le Redimensionner un événement. Vous devez gérer les choses comme glisser, le redimensionnement, la fermeture / minimiser etc., mais rien de tout cela est particulièrement difficile.

Voici ma réponse une question similaire, ce qui montre les bases de la faire vous-même (il est pour windows mobile, mais il fonctionnera dans des fenêtres régulières aussi).

Autres conseils

Ces éléments sont en effet externes de rendu d'une fenêtre d'applications sont désignées collectivement sous le nom de fenêtres « chrome » et par le système d'exploitation. Divers indicateurs sont utilisés aux fenêtres niveau de l'API pour les contrôles certains aspects de chaque instance de fenêtre (par exemple, la existante d'un boîtier de commande, bordures, boutons min / max, etc.), mais la largeur de la bordure pour fenêtres redimensionnables est déterminée par un paramètre système pour assurer l'uniformité et ne sont pas configurable sur une fenêtre en fonction de fenêtre.

Vous pouvez, dans de nombreux cas, prendre le contrôle de certains aspects de la fenêtre ne sont pas exposés par .NET en interagissant avec les API Windows et il est utile de lire les fenêtres documentation de l'API pour déterminer exactement ce qui est possible à ce bas niveau. Je vous suggère de lire la documentation CreateWindowEx comme point de départ.

http://msdn.microsoft.com/ fr-fr / bibliothèque / ms632680 (VS.85) .aspx

.NET vous permet de changer la propriété FormBorderStyle pour sélectionner parmi les pas de frontière, frontière largeur de pixel, et redimensionnable (bordure épaisse). Si vous souhaitez faire quelque chose sur mesure, vous devez définir le style de bordure .NET sans pareil, et assumer la responsabilité de rendre la fenêtre vous chrome. Cela implique de rendre votre propre barre de légende, boutons min / max, et bordure de la fenêtre. Ce n'est pas une entreprise légère, mais de nombreuses applications le font. Il est un long chemin à parcourir si tout ce que vous voulez vraiment est de contrôler la largeur de la bordure.

Cet article va dans la façon dont on pourrait aborder cette tâche dans WPF, et peut également être utile.

fenêtre Chrome Dans WPF

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top