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

时间:2016-02-03 11:02:06

标签: c# windows xaml windows-phone-8 combobox

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

enter image description here

所以可能有问题是如何将字符串传输到下一行,并且该项目保持整体(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);
    }
}

1 个答案:

答案 0 :(得分:1)

您必须使用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>