2008-12-31 4 views
0

Existe-t-il un bon moyen de limiter la largeur automatique d'un élément ou d'une colonne de grille? Je souhaite limiter la largeur automatique uniquement, mais autoriser les modifications de l'utilisateur. Par exemple, je souhaite autoriser GridSplitter à redimensionner arbitrairement la colonne, mais la largeur (automatique) initiale ne doit pas dépasser une valeur spécifique. Idem pour les éléments - Je veux autoriser le redimensionnement, mais limiter la largeur qu'ils ont s'ils ne sont jamais redimensionnés. MaxWidth fonctionne exactement comme le contraire - cela n'affecte pas la largeur automatique des colonnes de la grille (cela peut être un bogue), mais limite la largeur redimensionnée.MaxAutoWidth dans WPF

Y a-t-il une bonne solution qui fonctionne pour (presque) n'importe quel élément ou partie de grille?

Répondre

1

Essayez liant le MaxWidth au Width et utiliser un IValueConverter pour réagir aux changements de Auto à des valeurs spécifiques.

+0

Donc, fondamentalement, utilisez le MaxWidth, mais retirez-le dès que la largeur cesse d'être automatique? Très bonne idée - merci. –

+0

Malheureusement, cela cause un problème - l'utilisateur ne peut pas redimensionner l'élément s'il n'a pas déjà redimensionné l'élément. –

+0

Puisqu'il s'agit d'une chose ponctuelle, vous pouvez également essayer de réagir sur GridSplitter.Cliquez sur et désélectionnez MaxWidth au moment où les utilisateurs commencent le glisser. –

0

Dans la colonne de la grille, définissez la largeur à partir de laquelle vous souhaitez que la colonne commence. Toute modification de la largeur de colonne effectuée par l'utilisateur à l'aide du séparateur de grille remplacera la largeur par laquelle vous commencez.