8
votes

Obtenir la largeur de la grille WPF

J'ai une fenêtre WPF avec une grille: xxx

dans le codeBeHind, j'ajoute un StackPanel à la 1ère colonne, 2e rangée de maingrid, mais je veux la largeur maximale de Le StackPanel doit être la largeur de la colonne 1 à 50px. J'ai trébubli Accross stkpanel.width = maingrid.columnDéfinitions (1) .Width.tostring - 50 , cependant, cela sera erroné avec:

700 * ne peut pas être converti en double

est un moyen d'obtenir la largeur réelle de la colonne de grille tel qu'il apparaît à l'écran pour utiliser comment je veux que je veux ou puis-je définir un rembourrage ou similaire?

merci,

mat


0 commentaires

4 Réponses :


6
votes

s'avère que j'étais presque là. Au lieu d'utiliser

stkpanel.width = maingrid.ColumnDéfinitions [1] .Width.tostring - 50

J'aurais dû utiliser

stkpanel.width = maingrid.ColumnDéfinitions [1] .ACtualWidth.Tostring - 50


0 commentaires

3
votes

Tout en effectuant la taille de la ligne et la taille de la colonne, vous pouvez travailler, vous devez savoir qu'il y a des pièges avec cette approche. Lorsque vos données changent ou que la fenêtre est redimensionnée, la mise en page de la grille sera mise à jour et que tout peut changer. Bien sûr, vous pouvez vous adapter à ces changements, mais c'est plus de travail.

Au lieu de cela, si vous le pouvez, vous pouvez essayer de tout faire avec la grille elle-même en utilisant une colonne supplémentaire et une colonne couvrant. Ensuite, la grille prendra soin de tout le travail sale et vous pouvez vous concentrer sur l'apparence.


0 commentaires

7
votes

Vous avez deux propriétés pour un grille : xxx

Ces deux devraient faire l'affaire, essayez-la


0 commentaires

1
votes

Vous devez utiliser réelWidth and actuelheight. Par exemple: xxx


0 commentaires