为了浪费更少的屏幕空间,我使用StackPanel
将Label
与其各自的TextBox
结合两次,然后将其包裹在{{1}内}}。 (在此示例中,我仅指WrapPanel
和Branch
控件。)
当屏幕足够大时,两个Phone
控件并排放置并填充必要的宽度:
当屏幕缩小时,两个StackPanel
控件被正确包裹,但在右侧留下空白:
下面是xaml的写作,以实现我迄今为止的目标。没关系StackPanel
,因为它只影响红色轮廓和错误validatingTextBoxStyle
。
ToolTip
我尝试使用<WrapPanel
VerticalAlignment="Stretch"
Margin="0">
<StackPanel Orientation="Horizontal">
<Label
Content="Branch"
Margin="5,3"
Width="40"/>
<TextBox
x:Name="textBox"
Height="24"
Margin="5,0,5,5"
Style="{StaticResource validatingTextBoxStyle}"
Text="{Binding BranchNumber, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
MinWidth="150"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<Label
Content="Phone"
Margin="5,3"
Width="40"/>
<TextBox
x:Name="phone"
TabIndex="2"
Height="24"
Margin="5,0,5,5"
Style="{StaticResource validatingTextBoxStyle}"
Text="{Binding PhoneNumberToSearch, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
MinWidth="150"/>
</StackPanel>
</WrapPanel>
添加Grid
图层来调整两个ColumnDefinitions
控件的大小,但这会取消包装功能。我已经尝试将StackPanel
设置为HorizontalAlignment
,但没有看到任何变化。我也在stretching a WrapPanel's child objects上调查了这个类似的问题,但Stretch
不适合这种情况。
进一步调查,我确实注意到UniformGrid
控件并没有像我想象的那样拉伸,如下面添加背景颜色所示:
有没有办法拉伸这些控件,以便在它们被包裹后填充剩余的宽度?