我有一个显示x
项的ListView。它的定义是这样的;
<UserControl>
<UserControl.Resources>
<DataTemplate x:Key="MyCard" DataType="models:MyModel">
<StackPanel Background="{Binding BackgroundColour}"
Orientation="Vertical">
<Image Source="{Binding ImageSource}"
Stretch="Uniform"/>
<Label Content="{Binding MyType, Converter={StaticResource EnumDisplayNameConverter}}" />
</StackPanel>
</DataTemplate>
</UserControl.Resources>
<ListView ItemsSource="{x:Static myNamespace:MyViewModel.Options}"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollBarVisibility="Disabled"
ItemTemplate="{StaticResource MyCard}">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
</UserControl>
不幸的是,物品仍然从可视区域流出并被剪裁,如此;
我期待这些项目会调整大小以适应边界,但显然情况并非如此。我已尝试在ViewBox
添加DataTemplate
来解决此问题,但它仍未按预期运行。
图片均为300px x 300px,我们尝试在MaxWidth
,MaxHeight
和StackPanel
上设置ViewBox
/ Image
,但它仍然会离开&#34;结束&#34;。
有关如何解决此问题的任何建议?
答案 0 :(得分:0)
在内部模板内部,不要使用StackPanel,因为它会自动生成边界以容纳内容(并且还会重叠ListBox可滚动区域)。如果您希望自动调整大小,请使用Grid代替或在内部控件上设置精确大小,如Image等。