WPF最も簡単な方法は、ListBoxを使用してUserControlを作成し、アイテムのコレクションをそのアイテムにバインドすることです。トリックは、あなたがそれらのアイテムをどのように含んでいるかです。
ここで私はしばらく前にコード化されたサンプルがあります:
<ListBox ItemsSource="{Binding Files}" HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" SelectionMode="Single" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled">
<ListBox.ItemTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="10" VerticalAlignment="Center" IsItemsHost="True"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemContainerStyle>
</ListBox.ItemContainerStyle>
</ListBox>
もOrientation="Horizontal"
とScrollViewer.HorizontalScrollBarVisibility="Auto"
でのStackPanelを使用して行うことができるのと同じ。
質問は、弟に知らせてください。
申し訳ありませんが、この部分を逃した:
そして、どのようにそれをアニメーション化するための最良の方法だろうか?ちょうど徐々にタイマースタイルのチックを使用してピクセルを移動しますか?
最も良い方法は、WPFのストーリーボードとアニメーションのクラスを使用することです。一般的な考え方は次のとおりです。
- 進む/戻る矢印があります。
- クリックした矢印に応じて、最初の項目を削除して新しい項目をリストの最後に追加するか、最後の項目を削除してリストの先頭に項目を挿入します。
- アニメーションを使用してアイテムの追加/削除、つまりフェードアウト(または左右にスライド)をシミュレートし、アニメーションが完了したらバインドされたコレクションから実際のアイテムを削除します。
また、バインドされたコレクションは、アイテムの数が可変(私のサンプルでは10)を有し、除去され、追加される次の項目を追跡するために別のコレクションを使用してください。
入力していただきありがとうございますが、私はボタンを欲しません。私はそれが自動的にロールしたいトリガを取得するイベントを使用するつもりです。 – Deckerz
ボタンは必要ありません。カルーセルを左右に移動させる(すなわち、アイテムを追加/削除する)ことは、アイテムの追加/除去を容易に開始することができる。ルーティングされたイベントが必要ですが、イベントを引き起こす原因がどのオブジェクトであるかを知っているので、それを添付することができます。タイマーが必要な場合は、 'System.Windows.Forms'名前空間にあるタイマーを使用し、タイマーが動くたびに開始を実行できます。タイマーは基本的にあなたの前方/後方の矢印になります。カルーセルがどの方向に向かうかを示すフラグを作成して、このフラグを設定するときにこのフラグを設定することもできます。 –
イメージでこれを使用できますか?私。各ボックス/コンテンツはリンクされている画像ですか? – Deckerz