Ich habe eine TextBox
Kontrolle in einem , StackPanel
der Orientation
ist auf Horizontal
, kann aber nicht die TextBox bekommt den verbleibende Raum Stackpanel zu füllen.
XAML:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="180" Width="324">
<StackPanel Background="Orange" Orientation="Horizontal" >
<TextBlock Text="a label" Margin="5" VerticalAlignment="Center"/>
<TextBox Height="25" HorizontalAlignment="Stretch" Width="Auto"/>
</StackPanel>
</Window>
Und so sieht es aus:
Warum füllt diese TextBox das StackPanel nicht?
Ich weiß, dass ich mit einem Grid
Steuerelement mehr Kontrolle haben kann. Ich bin nur verwirrt über das Layout.
HorizontalAlignment
. :)FlowDirection="RightToLeft"
auf der verwendenDockPanel
, so dass Ihr letztes Kind das linke ist und den verbleibenden Platz nutzt.Ich würde stattdessen die Verwendung eines Rasters empfehlen:
Die andere Möglichkeit, dieses Problem zu umgehen, besteht darin, das Etikett oben und nicht rechts zu stapeln. Ich habe festgestellt, dass UWP eine integrierte Header-Eigenschaft hat, die Sie dafür verwenden können. Ich bin mir nicht sicher, ob die Header-Eigenschaft für WPF vorhanden ist.
quelle
Alte Frage nach aktuellem Thema:
ist das Erforderliche. Stellen Sie sicher, dass Sie das entfernen
width
.quelle
Ich kann ein StackPanel mit einem Textfeld wie folgt füllen:
Textbox Horizontal Füllen des Stackpanels
quelle