Obtenir des arrière-plans transparents avec des formes personnalisées dans Windows Forms
Les méthodes standard telles que SupportsTransparentBackColor
et TransparencyKey
échouent souvent lors de la création de formulaires transparents avec des formes personnalisées. Une solution supérieure consiste à exploiter les fenêtres en couches.
Fenêtres en couches : une approche supérieure
Les fenêtres en couches offrent des performances significatives et des améliorations visuelles pour les fenêtres avec des formes complexes, des animations ou un mélange alpha. Le système gère la composition et la repeinture, ce qui entraîne un rendu plus fluide et une translucidité partielle.
Implémentation de fenêtres en couches dans Windows Forms
La classe PerPixelAlphaForm
fournit les fonctionnalités nécessaires. Cette classe intègre le style étendu WS_EX_LAYERED
, permettant l'utilisation d'un bitmap comme arrière-plan du formulaire.
Étapes de mise en œuvre
Pour créer une fenêtre en couches avec une forme personnalisée :
PerPixelAlphaForm
: Ajoutez la classe PerPixelAlphaForm
à votre projet. Cette classe fournit la fonctionnalité de base pour créer des fenêtres en couches.PerPixelAlphaForm
. Cela donne accès aux propriétés des fenêtres en couches et à la méthode SelectBitmap
.SelectBitmap
en transmettant l'image PNG souhaitée. Cela définit le bitmap comme arrière-plan, permettant des ajustements d'opacité.Illustration des codes
La fonctionnalité principale de la méthode SelectBitmap
est illustrée ci-dessous :
<code class="language-c#">public void SelectBitmap(Bitmap bitmap, int opacity) { // ... (Code to configure layered window and select bitmap) ... // Update the window with the new bitmap and opacity UpdateLayeredWindow( this.Handle, // Handle to the layered window screenDc, // Handle to the screen DC ref newLocation, // New screen position of the layered window ref newSize, // New size of the layered window memDc, // Handle to the layered window surface DC ref sourceLocation, // Location of the layer in the DC 0, // Color key of the layered window ref blend, // Transparency of the layered window ULW_ALPHA // Use blend as the blend function ); }</code>
Application pratique : écran de démarrage en forme
Pour créer un écran de démarrage en forme :
PerPixelAlphaForm
.SplashScreen
qui hérite de PerPixelAlphaForm
.SplashScreen
, appelez SelectBitmap
avec l'image PNG de votre choix.En utilisant des fenêtres superposées, vous pouvez créer de manière transparente des formulaires avec des arrière-plans transparents et des formes personnalisées aux bords lisses, ce qui donne lieu à des applications plus attrayantes visuellement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!