HorizontalAlignment=Étirer, MaxWidth, et aligné à Gauche en même temps?
Cela semble comme il devrait être facile mais je suis perplexe. Dans WPF, j'aimerais une zone de texte qui s'étend à la largeur de son parent, mais seulement d'une largeur maximale. Le problème est que je veux qu'il soit justifié à gauche à l'intérieur de son parent. Pour obtenir de l'élasticité, vous devez utiliser HorizontalAlignment="Stretch", mais alors le résultat est centré. J'ai expérimenté avec HorizontalContentAlignment, mais il ne semble pas faire quoi que ce soit.
Comment puis-je obtenir ce bleu de la zone de texte à croître avec la taille de la fenêtre, avoir une largeur maximale de 200 pixels, et être justifié à gauche?
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel>
<TextBox Background="Azure" Text="Hello" HorizontalAlignment="Stretch" MaxWidth="200" />
</StackPanel>
</Page>
Quel est le truc?
- Merci de voir "si vous avez des questions comprennent “tags” dans leurs titres?", où le consensus est "non, ils ne devraient pas"! ouais, je sais ... juste pour des raisons d'héritage 🙂
Vous devez vous connecter pour publier un commentaire.
Vous pouvez définir
HorizontalAlignment
à Gauche, définissez votreMaxWidth
et puis de lierWidth
à laActualWidth
de l'élément parent:HorizontalAlignment="Stretch"
sur leContainer
élément. (p.s., Je me rends compte que vous posiez la question de plus de 6 ans.)Les deux réponses données travaillé pour le problème que j'ai dit -- Merci!
Dans ma vraie demande si, j'ai essayé de contraindre un panneau à l'intérieur d'un ScrollViewer et Kent méthode ne gère pas très bien pour une raison que je n'ai pas pris la peine de la piste vers le bas. Fondamentalement, les contrôles pourraient s'étendre au-delà de la MaxWidth réglage et défait mon intention.
Nir la technique a bien fonctionné et je n'avais pas le problème avec le ScrollViewer, si il y a une petite chose à regarder dehors pour. Vous voulez être sûr que la droite et la gauche de la marge sur la zone de texte sont mis à 0 ou ils vont obtenir de la manière. J'ai aussi changé la liaison à utiliser ViewportWidth au lieu de ActualWidth pour éviter les problèmes lorsque la barre de défilement verticale est apparue.
Vous pouvez l'utiliser pour la Largeur de votre DataTemplate:
Assurez-vous que votre DataTemplate racine a de la Marge="0" (vous pouvez utiliser un panneau de la racine et de l'ensemble de la Marge pour les enfants de la racine)
Peut-être que je peux encore aider quelqu'un qui se heurte à cette question, parce que c'est un très vieux problème.
J'avais besoin de ce bien et a écrit un comportement pour prendre soin de cela. Voici donc le problème:
Alors vous pouvez l'utiliser comme ceci:
Et enfin à oublier d'utiliser le
System.Windows.Interactivity
espace de noms à utiliser le comportement.Je voudrais utiliser
SharedSizeGroup