首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Grid.IsSharedSizeScope和ItemsControl.ItemTemplate的WPF布局问题

使用Grid.IsSharedSizeScope和ItemsControl.ItemTemplate的WPF布局问题
EN

Stack Overflow用户
提问于 2011-02-15 00:27:37
回答 1查看 8.3K关注 0票数 4

我正在尝试使用Grid.IsSharedSizeScope将ItemsControl显示的数据绑定控件排列在网格第一列中的一些控件旁边。

问题是我不能阻止控件不断地垂直增长。

如何在不设置MaxHeight属性的情况下阻止它们这样做。我在不同的地方尝试过VerticalAlignment和VerticalContentAlignment的不同设置,但都搞不清楚。

代码语言:javascript
复制
<Grid Grid.IsSharedSizeScope="True" >
    <Grid.RowDefinitions>
        <RowDefinition SharedSizeGroup="RowOne" />
        <RowDefinition SharedSizeGroup="RowTwo" />
        <RowDefinition SharedSizeGroup="RowThree" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <SomeControl Grid.Row="0" Grid.Column="0" />
    <SomeControl Grid.Row="1" Grid.Column="0" />
    <ItemsControl Grid.Row="0" Grid.Column="1" Grid.RowSpan="3" ItemsSource="{Binding Path=SomeSource}" ItemsPanel="{StaticResource MyHorizontalStackPanel}" >
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition SharedSizeGroup="RowOne" />
                            <RowDefinition SharedSizeGroup="RowTwo" />
                            <RowDefinition SharedSizeGroup="RowThree" />
                        </Grid.RowDefinitions>
                        <SomeControl Grid.Row="0" />
                        <SomeControl Grid.Row="1" />
                        <SomeControl Grid.Row="2" />
                    </Grid>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </Grid>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-15 02:41:23

尝试在嵌套网格上使用Grid.IsSharedSizeScope不好,将网格和ItemsControl并排放在另一个有两列的网格中,很好。

以下是我对自己愚蠢行为的解决方案:

代码语言:javascript
复制
<!-- outer grid (could be a stack panel) -->
<Grid Grid.IsSharedSizeScope="True">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <!-- header -->
    <Grid Grid.Column="0" Margin="0,10,10,0">
        <Grid.RowDefinitions>
            <RowDefinition SharedSizeGroup="RowOne" />
            <RowDefinition SharedSizeGroup="RowTwo" />
            <RowDefinition SharedSizeGroup="RowThree" />
        </Grid.RowDefinitions>
        <SomeControl Grid.Row="0" Grid.Column="0" />
        <SomeControl Grid.Row="1" Grid.Column="0" />
    </Grid>
    <!-- rows -->
    <ItemsControl Grid.Column="1" ItemsSource="{Binding Path=SomeSource}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition SharedSizeGroup="RowOne"   Height="Auto" />
                        <RowDefinition SharedSizeGroup="RowTwo"   Height="Auto" />
                        <RowDefinition SharedSizeGroup="RowThree" Height="Auto" />
                    </Grid.RowDefinitions>
                    <!-- define your row here -->
                </Grid>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</Grid>
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4994575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档