J'ai un contrôle WPF RichTextBox
et je règle la valeur de la propriété RichTextBox.Document.PageWidth
sur double.NaN
afin que la valeur soit déterminée automatiquement.Récupère automatiquement la valeur de la propriété FlowDocument.PageWidth
Maintenant, je voudrais obtenir la valeur déterminée automatiquement, mais je ne peux pas le faire en lisant la valeur de la propriété, car elle renvoie double.NaN
.
EDIT
j'essayer d'obtenir la valeur de RichTextBox.DesiredSize
dans la méthode OnMyPropertyChanged
de la propriété qui peut être réglé sur auto (avec une valeur de double.NaN
):
if (!double.IsNaN(MyProperty)) richTextBox.Width = MyProperty;
else richTextBox.Width = richTextBox.DesiredWidth;
Cependant, DesiredSize
retours 0 sur les deux axes.
Pas mauvaise idée, mais si j'ai défini une propriété Width sur auto, la largeur est ajustée de sorte que la limite droite du contrôle soit à la limite de son contrôle conteneur. Ainsi, aucune propriété Width-like ne modifie sa valeur en fonction de la largeur du texte dans une zone de texte enrichi. Il le fait dans une zone de texte normale ou un bloc de texte, mais pas dans une zone de texte enrichie. De toute façon, j'ai trouvé une solution grossière mais ça marche bien, je l'ai posté comme une réponse. – florien