Ich brauche eine gute Lösung für eine TextBox in einem Raster zu erweitern, um ihren verfügbaren Platz zu erweitern, aber nicht erweitern, je nachdem, wie lange der Text darin zu sein.WPF: Erweitern Sie TextBox nach verfügbarer Breite, aber NICHT nach Inhalt?
Die meisten Lösungen, die ich gefunden habe, ist es, einen Dummy-Rahmen zu erstellen und an seine ActualWidth zu binden, aber es ist eine zu Hacky-Lösung für mich. Die Border-Lösung benötigt auch einen kleinen Rand an der Grenze, was überhaupt nicht nett ist. Wird sie auf "low" gesetzt, verhält sich die Benutzeroberfläche sehr seltsam. Ich mag diese Lösung nicht. Es muss einen besseren geben? Ich möchte nur, dass die Textbox nicht mit ihrem Inhalt erweitert wird. Es sollte nicht so schwer sein. Bitte lassen Sie mich wissen, wie das geht.
EDIT:
Eine seltsame Sache, die ich bemerkt, dass der folgende Code der Grenze viel größer macht dann muss es sein:
<Grid>
<Border Name="dummy1" Background="Red" />
<TextBox Text="23242342343555554234234444444444423423423432344444444" Width="{Binding ActualWidth, ElementName=dummy1}" />
</Grid>
Ersetzen der Grenze und Textbox, um die Grenze macht passen Sie gut in die Textbox, aber was ich brauche, ist das Gegenteil. Wie schon gesagt, wenn Sie einen Rand (auf dem Rand) auf mindestens 0,5 setzen, funktioniert es, aber mit einer etwas zwielichtigen Benutzeroberfläche.
Wenn Sie nur eine TextBox in einem Raster haben, sollte es standardmäßig auf seine Eltern strecken. Sind Sie sicher, dass Sie nichts haben, was Ihre HorizontalAlignment-Eigenschaft ändert? Sprechen Sie über das Grid-Steuerelement oder ein anderes Steuerelement (wie DataGrid oder GridView), das Sie Grid nennen? –