Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 以垂直方向水平拉伸StackPanel内的栅格_Wpf_Stackpanel - Fatal编程技术网

Wpf 以垂直方向水平拉伸StackPanel内的栅格

Wpf 以垂直方向水平拉伸StackPanel内的栅格,wpf,stackpanel,Wpf,Stackpanel,我试图让这个边栏中的网格填充边栏,边栏是一个堆栈面板。根据这一点,这是不可能做到的 我的场景略有不同,因为我实际上有一个列表视图,其中StackPanel作为ItemsContainer 我举了一个简单的例子来说明: C XAML 结果如下所示: 这里最好的方法是什么?我希望菜单项绑定到动态列表并水平拉伸。我还希望避免在网格中硬编码许多行定义,而不是使用StackPanel。可能吗 非常感谢您需要将HorizontalContentAlignment设置为strech 其默认行为是将所有内容塞满

我试图让这个边栏中的网格填充边栏,边栏是一个堆栈面板。根据这一点,这是不可能做到的

我的场景略有不同,因为我实际上有一个列表视图,其中StackPanel作为ItemsContainer

我举了一个简单的例子来说明:

C

XAML

结果如下所示:

这里最好的方法是什么?我希望菜单项绑定到动态列表并水平拉伸。我还希望避免在网格中硬编码许多行定义,而不是使用StackPanel。可能吗


非常感谢

您需要将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>