c# - XAML/UWP:自定义 AutoSuggestBox 项目模板?
问题描述
我正在开发一个使用 API 并返回结果的应用程序,因此我使用 AutoSuggestBox 来实施建议。出于设计目的,我需要自定义每个 Suggestion Item,按照它所说的AutoSuggestBox 文档创建自定义 ItemTemplate。
我想让 DataTemplate 的网格填满整个建议空间,但我仍然无法让它工作。
Grid 似乎根据孩子的大小以任意方式设置其宽度,请查看:
编码:
<AutoSuggestBox
Name="inputBox" Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="5"
VerticalAlignment="Center" PlaceholderText="Search or paste your video link here."
BorderBrush="#7D1B0A" MinHeight="32"
KeyDown="HandleEnterPress" TextChanged="inputBox_TextChanged" SuggestionChosen="inputBox_SuggestionChosen" ItemsSource="{x:Bind ListItems, Mode=OneWay}">
<AutoSuggestBox.ItemTemplate>
<DataTemplate>
<Grid Background="#C92306" BorderBrush="#7D1B0A" BorderThickness="1, 0, 1, 1" HorizontalAlignment="Stretch" VerticalAlignment="Center" MinWidth="150">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding VideoTitle}" Grid.Column="1" Grid.Row="0" FontSize="14" HorizontalAlignment="Left" Foreground="#FFFFFF"/>
<TextBlock Text="{Binding ChannelTitle}" Grid.Column="1" Grid.Row="1" FontSize="12" HorizontalAlignment="Left" Foreground="#FFFFFF"/>
</Grid>
</DataTemplate>
</AutoSuggestBox.ItemTemplate>
</AutoSuggestBox>
解决方案
这是由于建议列表容器的原因AutoSuggestBox
,请在中插入以下代码AutoSuggestBox
:
<AutoSuggestBox.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="Padding" Value="0" />
</Style>
</AutoSuggestBox.ItemContainerStyle>
谢谢。
推荐阅读
- python-3.x - Django 模型设置
- arrays - 位操作函数没有给出所需的结果
- android - 如何以编程方式从状态栏android清除firebase推送通知
- android - 为什么垂直文本视图的重力或文本对齐不起作用?
- r - 为特定值“手动”计算核密度估计
- python - Django:无法访问此站点
- html - 图片在网络中加载但不显示 Github 页面
- python - 如何在 python 中使用带有类型提示的 Flask
- date - 如何为给定日期列(具有重复日期)创建一系列时间戳?
- javascript - 未捕获的类型错误:无法通过创建图表来读取未定义的属性“名字”