我想要实现的是在 WPF 窗口的最右侧创建带有框架的垂直照片列表。图像是绑定到 ObservableCollection 的数据,并且图像列表应该能够由用户使用 GridSplitter 调整大小。
当前代码如下:
<ListBox Grid.Row="0" Grid.Column="2" Grid.RowSpan="3" ItemsSource="{Binding Sheet.Images}">
<ListBox.ItemTemplate>
<DataTemplate>
<Border Background="#CCC" BorderThickness="8" Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ScrollViewer}}, Path=ViewportWidth}">
<Image Source="{Binding Contents}"/>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<GridSplitter Grid.Row="0" Grid.Column="1" Grid.RowSpan="3" Width="2" Background="Transparent"/>
它有一个问题 - 无论图像数量如何,水平滚动条始终可见,并且右边框的一部分被隐藏,除非通过滚动发现。当我绑定到 ActualWidth 时,问题更加明显,因为滚动条宽度没有从父容器宽度中减去。
如何创建这样一个垂直滚动条在需要时可见且水平滚动条从不可见的图像垂直列表,同时看到整个边框?
还有一个小问题:如何在两个连续图像的边界之间添加距离?