出于某种目的,我想将SearchBar
放在StackLayout
为Orientation
的{{1}}内,并向该Horizontal
添加填充,但是我发现{{ 1}}占据了第二个StackLayout
中显示的所有宽度空间,而当SearchBar
为SearchBar
时,它正常工作,如下图的第一个Orientation
所示:
这是两个Vertical
的代码:
SearchBar
我还尝试将水平方向的StackLayout
放入垂直方向的 <StackLayout Orientation="Vertical" Padding="100,0,100,0">
<SearchBar/>
</StackLayout>
<StackLayout Orientation="Horizontal" Padding="100,0,100,0">
<SearchBar/>
</StackLayout>
,如以下代码所示:
StackLayout
但这也无济于事,那么如何解决该问题呢?
答案 0 :(得分:1)
原因:
在stackLayout
中添加searchBar时,stackLayout
不会使子视图适合大小。因此,尽管您设置了padding
,但searchBar仍将超出stackLayout的边界。
解决方案:
将srachBar放在Grid
中。
<StackLayout Orientation="Horizontal" Padding="100,0,100,0">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="175" />
</Grid.ColumnDefinitions>
<SearchBar Grid.Row="0" Grid.Column="0" />
</Grid>
</StackLayout>