0

MahApps PanoramaControl を使用して、たくさんの写真を表示したいと考えています。ただし、コントロールには文字列パスのみが表示されます。これは、私のコードを見ると正しいでしょう。しかし、リンクの代わりに画像を表示するように機能させる方法がわかりません。

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 スタイル ライブラリを使用していますか?

パノラマコントロール

4

1 に答える 1

2

MahApps パノラマ コントロールを取得するには、以下のソリューションを提供します。このレベルの詳細な 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>

これにより、それが属するインターフェイスでレンダリングが行われるようになります。これがうまくいくことを願っています。

于 2013-04-09T12:23:40.580 に答える