我希望我的ComboBox在多列中显示ComboBoxItem,如下所示:



有人可以告诉我该怎么做吗?

我可以用这个:

        <ComboBox.ItemsPanel>
            <ItemsPanelTemplate>
                <UniformGrid Columns="3"/>
            </ItemsPanelTemplate>
        </ComboBox.ItemsPanel>


但这不允许我指定要在何处结束一列。

有没有一种方法可以使ComboBoxGrid.Column中使用ComboBoxItem属性,以便可以在不同的列中添加ComboBoxItem

最佳答案

将ItemsPanelTemplate更改为WrapPanel。

<ComboBox>
    <ComboBox.Resources>
        <Style TargetType="ComboBox">
            <Setter Property="ItemsPanel">
                <Setter.Value>
                    <ItemsPanelTemplate>
                        <WrapPanel IsItemsHost="True" Orientation="Vertical" Width="100" Height="50" />
                    </ItemsPanelTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        <Style TargetType="ComboBoxItem">
            <Setter Property="Width" Value="50" />
        </Style>
    </ComboBox.Resources>

    <ComboBoxItem Content="Item 1" />
    <ComboBoxItem Content="Item 2" />
    <ComboBoxItem Content="Item 3" />
    <ComboBoxItem Content="Item 4" />
    <ComboBoxItem Content="Item 5" />
    <ComboBoxItem Content="Item 5" />

</ComboBox>

关于c# - 在多列中显示ComboBoxItems,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18211385/

10-16 06:50