WPF 图片库

发布于 2024-07-29 06:38:17 字数 236 浏览 5 评论 0原文

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

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

I'm going to be driving a touch-screen application (not a web app) that needs to present groups of images to users. The desire is to present a 3x3 grid of images with a page forward/backward capability. They can select a few and I'll present just those images.

I don't see that ListView does quite what I want (although WPF is big enough that I might well have missed something obvious!). I could set up a Grid and stuff images in the grid positions. But I was hoping for something nicer, more automated, less brute-force. Any thoughts or pointers?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

童话里做英雄 2024-08-05 06:38:17

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

WPF 照片查看器演示

屏幕截图:
屏幕截图

I know that this is a pretty old question, but I'm answering because this page is in the first page on Google and this link could be useful for someone.

WPF Photo Viewer Demo

Screenshot:
Screenshot

如若梦似彩虹 2024-08-05 06:38:17

您可能想要使用 ItemsControl/ListBox,然后为 3x3 显示设置 UniformGrid 面板作为其 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 绑定。 但问题太宽泛,无法给出准确答案。

You might want to use an ItemsControl/ListBox and then set a UniformGrid panel for a 3x3 display as its ItemsPanel to achieve a proper WPF bindable solution.

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

You need to set your collection of Images as ItemsSource binding if you are looking for a dynamic solution here. But the question is too broad to give an exact answer.

变身佩奇 2024-08-05 06:38:17

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

You can use simple ListBox control and customize its ItemsPanel template and add WrapPanel in it. WrapPanel puts items in a Horizontal Tiling layout, where you can set its max width to incorporate 3 items in one row and it will create more rows for 3 items till last one fills.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文