XAML ComboBox Item 字符串太长 - 可以转移到下一行吗?

XAML ComboBox Item string too long - can it be transferred to next row?

我正在开发 windows phone 应用程序(基于 XAML/C#)。 所以我有一个 ComboBox 控件,它包含 Items 作为数据库中的字符串。 我注意到当有更多项目时,ComboBox 会在整个设备屏幕上自行拉伸,这没问题,但问题是当项目字符串太长时 它被切断了。

所以可能的问题是如何将字符串转移到下一行,并且项目保持完整(2 行上的 1 项目)。

我的第二个问题是如何在项目之间添加行分隔符?

这是我的 XAML ComboBox 代码:

<ComboBox 
    x:Name="ComboBox" 
    HorizontalAlignment="Right" 
    Margin="0,49,0,0" 
    VerticalAlignment="Top" 
    Width="193"
    PlaceholderText="Choose" 
    SelectionChanged="comboBox_SelectionChanged"/>

我正在添加这样的项目:

for (int i = 0; i < items.Count; i++)
{
    if (!ComboBox.Items.Contains(item[i].item_name))
    {
        ComboBox.Items.Add(item[i].item_name);
    }
}

您将不得不使用 TextBlock 它有一个名为 TextWrapping 的 属性。但是要使用它,您必须定义 ComboBox.ItemTemplate.

<ComboBox 
    x:Name="ComboBox" 
    HorizontalAlignment="Right" 
    Margin="0,49,0,0" 
    VerticalAlignment="Top" 
    Width="193"
    PlaceholderText="Choose" 
    SelectionChanged="comboBox_SelectionChanged">

    <!-- Template Start -->
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock 
            Text="{item_name}" 
            TextWrapping="Wrap" />      <!-- it will wrap the text -->
        </DataTemplate>
    </ComboBox.ItemTemplate>
    <!-- Template End -->

</ComboBox>