Wpf 以垂直方向水平拉伸StackPanel内的栅格
我试图让这个边栏中的网格填充边栏,边栏是一个堆栈面板。根据这一点,这是不可能做到的 我的场景略有不同,因为我实际上有一个列表视图,其中StackPanel作为ItemsContainer 我举了一个简单的例子来说明: C XAML 结果如下所示: 这里最好的方法是什么?我希望菜单项绑定到动态列表并水平拉伸。我还希望避免在网格中硬编码许多行定义,而不是使用StackPanel。可能吗Wpf 以垂直方向水平拉伸StackPanel内的栅格,wpf,stackpanel,Wpf,Stackpanel,我试图让这个边栏中的网格填充边栏,边栏是一个堆栈面板。根据这一点,这是不可能做到的 我的场景略有不同,因为我实际上有一个列表视图,其中StackPanel作为ItemsContainer 我举了一个简单的例子来说明: C XAML 结果如下所示: 这里最好的方法是什么?我希望菜单项绑定到动态列表并水平拉伸。我还希望避免在网格中硬编码许多行定义,而不是使用StackPanel。可能吗 非常感谢您需要将HorizontalContentAlignment设置为strech 其默认行为是将所有内容塞满
非常感谢您需要将HorizontalContentAlignment设置为strech 其默认行为是将所有内容塞满左侧:
<ListView ItemsSource="{Binding MyList}" HorizontalContentAlignment="Stretch">
<ListView.ItemTemplate>
<DataTemplate>
<Grid Background="Orange">
<TextBlock Text="{Binding}"></TextBlock>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Background="Yellow"></StackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
P.考虑使用VelababelCelp而不是一个列表,在YouTon中使用MVVM
更新这些元素时,在数据表中设置网格的背景而不是文本块的背景。这应该会有帮助,谢谢你发现了这一点。我已经更新了问题,同样的问题仍然存在。请参阅下面的答案: <ListView ItemsSource="{Binding MyList}">
<ListView.ItemTemplate>
<DataTemplate>
<Grid Background="Orange"
HorizontalAlignment="Stretch">
<TextBlock Margin="5"
Text="{Binding}"></TextBlock>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Background="Yellow"></StackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
<ListView ItemsSource="{Binding MyList}" HorizontalContentAlignment="Stretch">
<ListView.ItemTemplate>
<DataTemplate>
<Grid Background="Orange">
<TextBlock Text="{Binding}"></TextBlock>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Background="Yellow"></StackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>