Comment pourrais-je définir la valeur de la propriété Height
d'un contrôle WPF en code C# à "Auto
"?
Je souhaite reproduire ce comportement dans le code-behind. Des idées?
Comment pourrais-je définir la valeur de la propriété Height
d'un contrôle WPF en code C# à "Auto
"?
Je souhaite reproduire ce comportement dans le code-behind. Des idées?
Peut-être ce lien vous aidera.
Parfois, vous voudrez définir de manière programmatique la Hauteur ou la Largeur d'un élément WPF sur Auto en code. Pour cela, utilisez simplement la valeur Double.NaN (Not a Number).
Par exemple, en C# :
this.txtName.Width = Double.NaN;
Ne fonctionne pas dans mon cas. Mais je change la hauteur et la largeur à travers les comportements (bibliothèque Expression Blend 4.0)
Y a-t-il des différences entre cette réponse et la réponse acceptée? Parce que sinon, celle-ci devrait être en tête pour ne pas contourner le cadre.
Selon le réflecteur, GridLength.Auto est new GridLength(1.0, GridUnitType.Auto); donc pas tout à fait équivalent à la réponse acceptée, mais beaucoup plus lisible.
Il ne s'agit pas d'une solution aussi générale que la réponse acceptée. Tous les contrôles n'implémentent pas une propriété de hauteur en tant qu'objet 'GridLength' (struct). Pour ceux qui utilisent simplement double, cette réponse ne fonctionne pas. Et la question ne demandait pas généralement, elle utilisait simplement une grille comme exemple.
Alors que la question a été répondue avec le code-behind (comme demandé), voici la même solution en XAML pour les propriétés de contrôle de base qui n'ont pas de "auto"
:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Height="{x:Static sys:Double.NaN}"
Je poste cela car Google m'a dirigé ici en cherchant une solution XAML pour un TextBox
(auto n'existe pas).
Pour définir la taille des contrôles de mise en page comme Grid, StackPanel ou Canvas, utilisez la taille réelle du parent, la taille ou la propriété préférée du parent. Dans cet exemple, j'ai un ScrollViewer défini en XAML comme parent, donc :
Grid mygrid = new Grid();
mygrid.Width = 300;
mygrid.Height = myScrollViewer.ActualHeight;
Cela se comporte comme le réglage de la hauteur de mygrid sur Auto
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.