2013-03-20 13 views
0

我想使用MahApps PanoramaControl顯示一堆照片。但是我看到只有字符串路徑出現在控件中,如果你看我的代碼,這將是正確的。 但我無法弄清楚如何讓它顯示圖像而不是鏈接。MahApps全景控制不顯示照片的

的XAML:

<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風格庫?

panorama control

回答

2

爲了獲得MahApps全景控制,我會提供下面的後續解決方案。至於其他提供這種級別的詳細的現代用戶界面體驗的框架,我還沒有遇到任何人,但有興趣知道你是否做過。

希望解決方案適合您。

您需要添加一個數據模板來代表您要顯示的對象。

首先定義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> 

這應該讓渲染髮生在它所屬的接口中。希望這對你有用。

+1

DataTemplates是這個關鍵。如果沒有指定它,以及它需要的數據類型和佈局,控件將只是.ToString()一個它無法識別的對象 - 這就是你在上面看到的。 – 2013-04-11 23:45:56