Eu tenho um TextBox
controle dentro de um StackPanel
cujo Orientation
está definido como Horizontal
, mas não consigo fazer com que o TextBox preencha o espaço StackPanel restante.
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>
E é assim que se parece:
Por que esse TextBox não está preenchendo o StackPanel?
Eu sei que posso ter mais controle usando um Grid
controle, estou apenas confuso sobre o layout.
HorizontalAlignment
. :)FlowDirection="RightToLeft"
noDockPanel
, então seu último filho será o esquerdo, usando o espaço que resta.Eu recomendaria usar uma grade em vez disso:
A outra maneira de contornar esse problema é empilhar a etiqueta na parte superior em vez de à direita. Percebi que UWP tem uma propriedade de cabeçalho embutida que você pode usar para isso, não tenho certeza se a propriedade de cabeçalho existe para WPF.
fonte
Pergunta antiga por tópico real:
é a coisa necessária. Juste certifique-se de remover o
width
.fonte
Consigo preencher um StackPanel com uma caixa de texto usando o seguinte:
Caixa de texto preenchendo horizontalmente o painel da pilha
fonte