La grille de SharedSizeGroup et * dimensionnement
J'ai un contrôle de l'utilisateur, l'appeler UserControl, qui a une grille avec la colonne suivante définitions:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="A"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="B"/>
<ColumnDefinition Width="*" SharedSizeGroup="C"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="D"/>
<ColumnDefinition MinWidth="30" Width="*" SharedSizeGroup="E"/>
<ColumnDefinition MinWidth="30" Width="*" SharedSizeGroup="F"/>
<ColumnDefinition Width="110" SharedSizeGroup="G"/>
<ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="H"/>
<ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="I"/>
<ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="J"/>
<ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="K"/>
<ColumnDefinition MinWidth="30" Width="Auto" SharedSizeGroup="L"/>
</Grid.ColumnDefinitions>
J'ai aussi MainWindow, qui contient une grille elle-même, avec la propriété suivante définie sur la grille:
Grid.IsSharedSizeScope="True"
Maintenant, j'ai ajouté un couple de UserControls à la grille dans MainWindow (chacun à une ligne distincte). Mon but est d'avoir chacun de la largeur des colonnes des différents contrôles utilisateur à rester en synchronisation. Tout fonctionne bien lors de l'utilisation de SharedSizeGroup sauf pour une chose. Il semble que toute la colonne avec une Largeur de * ne se comporte pas comme il le devrait. Il ressemble à l' * largeurs des colonnes, comme s'ils étaient Auto à la place.
Il y a des restrictions/questions avec SharedSizeGroup et * dimensionnement? Cela semble être la meilleure façon de conserver les largeurs de colonne dans la synchronisation, mais je n'arrive pas à résoudre ce problème.
Grâce.
Vous devez vous connecter pour publier un commentaire.
MSDN:
Si vous utilisez étoile puis toutes les colonnes serait la même largeur, de sorte que vous devrait attribuer le même
SharedSizeGroup
à tous, si vous n'avez pas l'esprit de l'auto-dimensionnement aspect:(À partir de ce comportement il en résulte également que vous pouvez déposer le
Width
bien quandSharedSizeGroup
est réglé)Vous pouvez en déduire que si tous les auto-dimensionnement des colonnes sont partagés en groupes de taille ensuite, toutes les étoiles de la taille des colonnes ont les mêmes tailles que chaque grille dans le champ d'application aura la même quantité d'espace inutilisé de gauche qui sera distribué à l'étoile de la taille des colonnes.
Un exemple simple:
Comme l'a expliqué le
Width="*"
ne fera rien, mais en tant que colonnes0
et2
sont synchronisés, colonne1
doit être réglée en tant que bien de sorte que vous pouvez simplement déposer leSharedSizeGroup
: