【问题标题】:ItemsControl with SharedSizeGroup AND stretching带有 SharedSizeGroup 和拉伸的 ItemsControl
【发布时间】:2014-01-24 10:42:07
【问题描述】:

显然,当使用 SharedSizeGroup 时,您不能使用星号 (*)。这已经在这里讨论过: Grid's SharedSizeGroup and * sizing

不幸的是,在那次讨论中,他们并没有真正为问题提供可行的解决方案。

我想显示一个控件列表,每行一个控件,布局如下:

(名称)(输入文本框)(X 按钮)

应该是这样的:

Description [                     ] X
Name        [                     ] X
ID          [                     ] X

但是我得到了

Description [] X
Name        [] X
ID          [] X

第 1 列的宽度应与最长的单词一样宽。第 2 列,即输入文本框,应拉伸以填充所有剩余空间 (*),但这不适用于前面讨论的 SharedSizeGroup。 * 被视为自动,因此不可拉伸。

有什么想法吗?这是 XAML:

        <ItemsControl ItemsSource="{Binding FilterList}" Margin="5,0,5,0" Grid.IsSharedSizeScope="True">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Grid Margin="5,0,5,0" HorizontalAlignment="Left">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition SharedSizeGroup="Column0" Width="Auto"/>
                            <ColumnDefinition SharedSizeGroup="Column1" Width="*"/>
                            <ColumnDefinition SharedSizeGroup="Column2" Width="Auto"/>
                        </Grid.ColumnDefinitions>
                        <Label Grid.Column="0" Content="{Binding FilterLabel}" HorizontalAlignment="Right"/>
                        <TextBox Grid.Column="1" Height="20" Text="{Binding FilterString, UpdateSourceTrigger=PropertyChanged}"/>
                        <Button Grid.Column="2" Content=" X " Margin="2" Visibility="{Binding ClearFilterVis}" Command="{Binding ClearFilterCommand}"/>
                    </Grid>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>

【问题讨论】:

  • 第二列:&lt;ColumnDefinition/&gt; 将占用所有可用空间。在这种情况下,您不需要 sharedsizegroup,也不需要 Width="*"
  • 试过了。我仍然遇到上述问题。它正在缩小到只占用与空文本框一样多的空间,这并不多。换句话说,它就像第一列一样。

标签: wpf xaml itemscontrol itemtemplate sharedsizegroup


【解决方案1】:

这是因为您将 Grid's HorizontalAlignment 设置为 Left 而不是 Stretch。或者只是删除 Grid's HorizontalAlignment 设置。正如@Highcore 所说,在这种情况下您似乎不需要SharedSizeGroup

【讨论】:

  • 是的,这是两个问题的结合。我之前尝试过拉伸对齐,但是设置了 SharedSizeGroup 后,它仍然无法正常工作。谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-08-18
  • 2017-02-26
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-07
相关资源
最近更新 更多