我有一个水平的Listbox绑定到枚举,包括EnumToImageSource转换器工作,需要Listbox / view来获取selectedItem。
我需要列表框中的图像缩小其宽度,使其全部可见,即使在调整窗口大小时也不会出现水平滚动条。
this question中的解决方案仅适用于普通垂直列表视图。这甚至可以完成我想要存档的内容吗?
<ListBox HorizontalContentAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ItemsSource="{Binding Source={StaticResource shoeValuesProvider}}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding Converter={StaticResource ShoeToImageConverter}}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
答案 0 :(得分:0)
感谢Sinatr的评论,我找到了确实使用UniformGrid
定义了一行的解决方案,并将宽度设置为祖先ScrollContentPresenter,如上所述here:
<StackPanel x:Name="ReferenceStackPanel">
<ListBox HorizontalContentAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
SelectedItem="{Binding ShoeModel}"
ItemsSource="{Binding Source={StaticResource shoeValuesProvider}}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Margin="0" Rows="1" Width="{Binding ActualWidth,RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ScrollContentPresenter}}}"></UniformGrid>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding Converter={StaticResource ShoeToImageConverter}}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>