【问题标题】:Split the width evenly between of two controls that make up a listbox item?在组成列表框项的两个控件之间平均分割宽度?
【发布时间】:2010-11-13 09:08:23
【问题描述】:

我正在尝试设置一个 ListBox,以便每个项目都有一个文本块和一个组合框,在列表框的宽度上均匀分布,但我似乎找不到 ColumnDefinition 属性的神奇组合来做到这一点。这是我的列表框项目的 DataTemplate。反正我已经清理过了,因为它是错误的。

        <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>

我测试了一个在窗口上带有网格的简单应用程序。简单地指定两个 ColumnDefinition 会使它们自动占据宽度的一半,这很好,但是在 listboxitem 数据模板中这样做时,行为会有所不同。

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

谢谢!

【问题讨论】:

    标签: c# wpf listbox datatemplate listboxitem


    【解决方案1】:

    ListBox 的默认HorizontalContentAlignment 是左。您需要将其设置为 Stretch 以使 ListBoxItems 占据整个宽度。

    这里有更多关于 ListBox/ListBoxItem 样式和模板的信息:http://msdn.microsoft.com/en-us/library/cc278062(VS.95).aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多