0

我想使用 MahApps PanoramaControl 来显示一堆照片。但是,我看到控件中只出现了字符串路径,如果您查看我的代码,这将是正确的。但我不知道如何让它显示图像而不是链接。

xml:

    <Controls:Panorama Grid.Row="2"
                   Grid.ColumnSpan="4"
                   ItemBox="140"
                   ItemsSource="{Binding PhotoCollection, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />

视图模型:

  string[] filePaths = Directory.GetFiles(@"D:\Google Drive\Images\Backgrounds");

  test = new PanoramaGroup("My Photo's", filePaths);
  PhotoCollection = new ObservableCollection<PanoramaGroup> { test };

有人知道如何让它显示图像吗?控件已加载,因为我可以在文本上横向滚动。他们的网站上没有太多关于如何让它工作的文档......

或者您是否在为 4.0 框架使用其他 Metro 风格库?

全景控制

4

1 回答 1

2

为了获得 MahApps 全景控制,我将在下面提供以下解决方案。至于提供这种级别的详细现代 UI 体验的其他框架,我没有遇到任何但有兴趣知道你是否这样做。

希望解决方案对您有用。

您需要添加一个代表您正在显示的对象的数据模板。

首先在 POCO 类中定义对象(如下图所示)。然后在项目群中确保将它们转换为新创建的 POCO 对象,而不是将它们保留为字符串值。

public class Photo {
   public string Path { get; set; }
}

接下来,在 XAML 窗口的定义中,您需要创建对 POCO 对象所在的命名空间的引用。

xmlns:model="clr-namespace:project.models;assembly=project"

最后但并非最不重要的一点是,您希望随后创建一个 DataTemplate 来表示该对象。这被添加到窗口资源中。

<Window.Resources>
    <DataTemplate DataType="{x:Type model:Photo}">
        <Image Source="{Binding Path}"/>
    </DataTemplate>
</Window.Resources>

这应该让渲染发生在它所属的界面中。希望这对你有用。

于 2013-04-09T12:23:40.580 回答