Je suis besoin de faire une fenêtre personnalisée avec WindowStyle.None, AllowsTransparency = true, etc.C# WPF - redimensionnement sur mesure
Une exigence est un contrôle ResizeGrip personnalisé.
Je travaille avec ce ResizeMode.CanResizeWithGrip, en prenant un code à partir d'un projet open source trouvée ici: Fluid Kit
Voir la classe « GlassWindow » si vous êtes intéressé.
Pour faire le travail, j'appelle le code suivant sur l'événement MouseLeftButtonDown du ResizeGrip:
NativeMethods.SendMessage(_interopHelper.Handle, WM.SYSCOMMAND, (IntPtr)((int)SC.SIZE + (int)sizingAction), IntPtr.Zero);
SizingAction est défini comme:
enum SizingAction
{
West = 1,
East = 2,
North = 3,
NorthWest = 4,
NorthEast = 5,
South = 6,
SouthWest = 7,
SouthEast = 8,
}
Il est tout fonctionne, mais je remarquez une certaine étrangeté lorsque vous redimensionnez via un SouthWest (ou n'importe quel côté gauche ou supérieur). Vous pouvez voir la fenêtre WPF redessiner à la fois pour un changement de taille et de position (qui se produit toujours lors du redimensionnement en haut ou à gauche).
Si vous essayez ceci sur n'importe quelle fenêtre avec le style de fenêtre par défaut et le mode redimensionner, cela fonctionne très bien. À l'exception de XP, vous devez avoir le thème classique sur.
Est-ce que quelqu'un connaît une alternative à l'utilisation de cela? Ou un moyen de le réparer?
J'ai aussi posté des informations sur les forums MSDN, ici: MSDN Forums
PS - Vous pouvez voir ce comportement de première main si quelqu'un veut svn checkout Kit fluide et exécuter l'exemple GlassWindow en définissant StartupUri = "GlassWindow/Window1 .xaml "dans leur exemple de projet.
EDIT: Microsoft m'a dit d'envoyer une suggestion de produit ...
Le lien est ici si quelqu'un a un problème similaire:
J'ai aussi mis un exemple ici si vous comme pour essayer de première main:
Jonathan, j'ai cette étrangeté même si je redimensionne la fenêtre Win32 standard;) ... – Anvaka
Anvaka doit être sur XP, changer votre thème classique pour voir ce que je veux dire. Sur Vista et plus haut, toutes les fenêtres fonctionnent parce qu'elles ont des capacités de rendu plus avancées. Je peux accepter ma fenêtre personnalisée scintillant sur XP, mais ma fenêtre personnalisée ne doit pas scintiller sur Vista et supérieur. – jonathanpeppers