WPF图片库

时间:2009-07-25 21:26:04

标签: c# wpf image xaml gallery

我将推动需要向用户展示图像组的触摸屏应用程序(不是Web应用程序)。希望呈现具有页面前向/后向能力的3×3网格图像。他们可以选择一些,我只会展示那些图像。

我没有看到ListView完全符合我的要求(尽管WPF足够大,我可能错过了一些明显的东西!)。我可以在网格位置设置Grid和填充图像。但我希望有更好的,更自动化的,更少蛮力的东西。有什么想法或指示吗?

3 个答案:

答案 0 :(得分:7)

您可能希望使用ItemsControl / ListBox,然后将UniformGrid面板设置为3x3显示为ItemsPanel,以获得正确的WPF可绑定解决方案。< / p>

 <ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled">
    <ListBox.ItemsPanel>
      <ItemsPanelTemplate>
        <UniformGrid Rows="3" Columns="3"/>
       </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
  <Image Source="Images\img1.jpg" Width="100"/>
  <Image Source="Images\img2.jpg" Width="50"/>
  <Image Source="Images\img3.jpg" Width="200"/>
  <Image Source="Images\img4.jpg" Width="75"/>
  <Image Source="Images\img5.jpg" Width="125"/>
  <Image Source="Images\img6.jpg" Width="100"/>
  <Image Source="Images\img7.jpg" Width="50"/>
  <Image Source="Images\img8.jpg" Width="50"/>
  <Image Source="Images\img9.jpg" Width="50"/>
 </ListBox>

如果您在此处寻找动态解决方案,则需要将Images的集合设置为ItemsSource绑定。但问题太广泛了,无法给出确切的答案。

答案 1 :(得分:6)

我知道这是一个非常古老的问题,但我正在回答,因为此页面位于Google的第一页,此链接可能对某人有用。

WPF Photo Viewer Demo

截图: Screenshot

答案 2 :(得分:3)

您可以使用简单的ListBox控件并自定义其ItemsPanel模板并在其中添加WrapPanelWrapPanel将项目放在水平平铺布局中,您可以在其中设置其最大宽度以在一行中包含3个项目,并且它将为3个项目创建更多行,直到最后一个填充。