Pourquoi une fenêtre est-elle plus grande au moment de l’exécution?

J’ai une fenêtre réglée à 340 x 146 px, non redimensionnable.

Dans le concepteur, la taille de la fenêtre est correcte. Mais lorsque je lance l’application, elle est plus grande. entrez la description de l'image ici

Edit: De plus, la mise en page est Canvas .

Thème classique:

entrez la description de l'image ici

Edit2:

Après avoir exécuté snoop (merci Zach), il apparaît que les dimensions réelles sont celles que j’ai spécifiées. Mais la zone client est plus grande que celle de Visual Studio.

Je comprends maintenant que la taille du client s’étire, lorsque la taille de Windows est fixée à certaines dimensions. Cependant, je pense que cela rend la disposition de canvas dans la fenêtre inutilisable.

Edit3:

     

Je vais y répondre moi-même après avoir fouillé.

Les valeurs ActualWith et ActualHeight de la fenêtre sont égales à Width et Height définies dans le concepteur.

Ce qui change, c’est la zone client. Les dimensions du client sont les dimensions de la fenêtre moins la bordure du thème. Cela casse toutefois le design de Canvas, car ses dimensions absolues et son positionnement ont été modifiés en fonction du thème.

La façon de faire fonctionner le design Canvas. Vous devez définir les dimensions sur le canevas, supprimer les dimensions sur la fenêtre et définir SizeToContent sur la fenêtre en conséquence. De cette façon, les dimensions de cavnas restnt fixes et la taille de la fenêtre change en fonction de la façon dont la bordure du thème est pensée.

Tout simplement parce que la taille u spécifie le dosé, tient compte de la bordure qui sera tirée du thème actuel du système d’exploitation … Si vous définissez 200×200, vous obtenez cet espace complet .. vous ne voudriez pas qu’il soit réduit à 190×190 en raison de 5px frontière de chaque côté. et cela aussi changera pour le thème actuel sur le système d’exploitation, comme Aero, Classic, etc.

La fenêtre a-t-elle un jeu DesignWidth et DesignWidth ? Voir WPF UserControl Design Time Size .

Edit: Ma prochaine pensée serait d’essayer d’utiliser Snoop pour voir au moment de l’exécution ce qui est différent. Est-ce la taille, le rembourrage, la marge ou autre chose?

Je suis probablement en train de dire l’évidence, mais il semble que le thème Windows soit la différence. Comment se comparent-ils si vous passez au thème Windows classique?