7

我将开发一个需要向用户呈现图像组的触摸屏应用程序(不是网络应用程序)。希望呈现具有页面前进/后退功能的 3x3 图像网格。他们可以选择一些,我将只展示这些图像。

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

4

3 回答 3

8

我知道这是一个很老的问题,但我要回答是因为此页面位于 Google 的第一页,并且此链接可能对某人有用。

WPF 照片查看器演示

截屏: 截屏

于 2013-03-20T03:10:58.653 回答
7

您可能希望使用ItemsControl/ListBox然后将UniformGrid面板设置为 3x3 显示,ItemsPanel以实现适当的 WPF 可绑定解决方案。

 <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>

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

于 2009-07-25T21:34:14.670 回答
3

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

于 2009-07-25T21:29:12.357 回答