代码之家  ›  专栏  ›  技术社区  ›  djcouchycouch

是否在组成列表框项的两个控件之间平均拆分宽度?

  •  3
  • djcouchycouch  · 技术社区  · 16 年前

    我正在尝试设置一个列表框,以便每个项目都有一个文本块和一个组合框,在列表框的宽度上均匀拆分,但我似乎找不到ColumnDefinition属性的神奇组合来完成它。这是列表框项的数据模板。不管怎么说,我已经把它清理干净了。

            <DataTemplate x:Key="MyDataTemplate">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition/>
                        <ColumnDefinition/>
                    </Grid.ColumnDefinitions>
                    <TextBlock Grid.Column="0" Text="{Binding XPath=text()}"/>
                    <ComboBox Grid.Column="1" SelectedIndex="0" ItemsSource="{Binding Source={StaticResource Names}, XPath=Name}"></ComboBox>
                </Grid>
            </DataTemplate>
    

    我测试了一个窗口上有网格的简单应用程序。简单地指定两个列定义会使它们自动占用一半的宽度,这很好,但是在ListBoxItem数据模板中执行相同操作时,行为是不同的。

    如何更改数据模板以使其正常工作?

    谢谢!

    1 回复  |  直到 16 年前
        1
  •  7
  •   mjeanes    16 年前

    默认值 HorizontalContentAlignment 因为还有一个列表框。您需要将其设置为Stretch,以便ListBoxItem占据整个宽度。

    以下是有关列表框/列表框项样式和模板的更多信息: http://msdn.microsoft.com/en-us/library/cc278062(VS.95).aspx