Wpf MahApps全景控件不显示照片';s

Wpf MahApps全景控件不显示照片';s,wpf,mahapps.metro,Wpf,Mahapps.metro,我想使用MahApps全景控件来显示一组照片。但是,我只看到控件中出现了字符串路径,如果您查看我的代码,这将是正确的。 但我不知道如何让它工作,以显示图像,而不是链接 Xaml: 视图模型: string[] filePaths = Directory.GetFiles(@"D:\Google Drive\Images\Backgrounds"); test = new PanoramaGroup("My Photo's", filePaths); PhotoCollectio

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

Xaml:


视图模型:

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

  test = new PanoramaGroup("My Photo's", filePaths);
  PhotoCollection = new ObservableCollection<PanoramaGroup> { test };
string[]filepath=Directory.GetFiles(@“D:\Google Drive\Images\Backgrounds”);
测试=新全景组(“我的照片”,文件路径);
光收集=新的可观察收集{test};
有人知道如何让它显示图像吗?控件被加载,因为我可以在文本上横向滚动。 他们的网站上没有太多关于如何让它工作的文档

或者您正在为4.0框架使用其他Metro样式的库


为了获得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>


这样就可以在它所属的界面中进行渲染。希望这对您有用。

数据模板是解决这一问题的关键。如果不指定一个,也不指定它所需的数据类型和布局,控件只会.ToString()一个它无法识别的对象,这就是您在上面看到的。
<Window.Resources>
    <DataTemplate DataType="{x:Type model:Photo}">
        <Image Source="{Binding Path}"/>
    </DataTemplate>
</Window.Resources>