XAML ComboBox 项目字符串太长 - 可以转移到下一行吗?
Posted
技术标签:
【中文标题】XAML ComboBox 项目字符串太长 - 可以转移到下一行吗?【英文标题】:XAML ComboBox Item string too long - can it be transferred to next row? 【发布时间】:2016-05-12 13:00:30 【问题描述】:我正在开发 Windows Phone 应用程序(基于 XAML/C#)。
所以我有一个ComboBox
控件,它包含Items
作为数据库中的字符串。
我注意到当有更多项目时,ComboBox 会在整个设备屏幕上自行拉伸,这是可以的,但问题是当项目字符串太长时
它被切断了。
因此可能会有疑问,如何将字符串转移到下一行,并且项目保持完整(2 行上的 1 个项目)。
我的第二个问题是如何在项目之间添加行分隔符?
这是我的 XAML 组合框代码:
<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】:您必须使用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>
【讨论】:
以上是关于XAML ComboBox 项目字符串太长 - 可以转移到下一行吗?的主要内容,如果未能解决你的问题,请参考以下文章