我正在尝试实现某种布局。
我有两个要垂直堆叠的元素(我需要它们紧密相互跟随)。我目前正在尝试使用Stackpanel来实现它。
问题在于我希望第一个元素具有有限的宽度,而另一个元素使用StackPanel中可用的所有宽度。理想情况下,我希望第一个元素的宽度等于包含StackPanel的网格中四列的宽度,这是我的代码。
<Grid>
<!-- Colums and Rows definition go here -->
<StackPanel Grid.Column="0" Grid.ColumnSpan="4" Grid.Row="3" Grid.RowSpan="8">
//The first element
<Viewbox Name="viewbox_choix" Margin="160,0,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Grid.Column="0" Grid.ColumnSpan="4" Grid.Row="3" Grid.RowSpan="4">
//The second element
<StackPanel Grid.Column="0" Grid.ColumnSpan="5">
<Border></Border>
etc...
</StackPanel>
</StackPanel>
</Grid>
网格属性指的是stackpanel的父网格。但是当我尝试在StackPanel中使用它们时,Grid.Column和Grid.ColumnSpans似乎没有任何效果。
该代码的问题是第一个元素也使用了StackPanel的所有宽度,但这不是我想要的......
任何人都可以帮助我吗?我确切地说我还在学习WPF,我真的不知道绑定是如何工作的......
答案 0 :(得分:1)
在WPF中,StackPanel
不像Grid
那样有效。没有最大宽度......它会愉快地让内容从右侧消失。如果要自动调整大小,只需用{Grid
StackPanel
更新&gt;&gt;&gt;
在Grid
类中,有一个名为IsSharedSizeScope
的附加属性。将其添加到父Grid
并将其设置为true。然后在RowDefinitions
中,您可以将SharedSizeGroup
属性添加到您需要的列中。
这些示例可能会对您有所帮助:
Grid's SharedSizeGroup and * sizing(SO帖子)
Grid.IsSharedSizeScope Attached Property(MSDN)
您可能需要进行一些实验,但您应该能够使用这些属性获得所需的效果。