2013-03-20 2 views
0

MahApps PanoramaControl을 사용하여 많은 사진을 표시하고 싶습니다. 그러나 나는 문자열 경로 만 컨트롤에 표시되는 것을 보았는데, 이는 내 코드를 보면 정확할 것이다. 그러나 링크 대신 이미지를 표시하는 방법을 알 수는 없습니다.MahApps panoram 컨트롤에 사진이 표시되지 않습니다.

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 스타일 라이브러리를 사용하고 있습니까? 내가 아래 다음과 솔루션을 제공 할 MahApps 파노라마 제어를 위해

panorama control

답변

2

. 이 수준의 상세한 MODERN 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> 

이렇게하면 렌더링이 속한 인터페이스에서 렌더링됩니다. 희망이 당신을 위해 작동합니다.

+1

DataTemplates가이 키입니다. 하나를 지정하지 않고 필요한 데이터 유형과 레이아웃을 지정하지 않으면 컨트롤은 인식하지 못하는 객체를 .ToString()으로 처리합니다. 이는 위에서 보았던 것입니다. –

관련 문제