3

これは、これまでに見つけたほど複雑ではないと確信しています!

ユーザーコントロールの水平リストをレンダリングしようとしています。それらの数が多いでしょう。したがって、何らかの形式の仮想リストが望ましいでしょう。

各ユーザー コントロールにはイメージが含まれ、選択可能になります。

Android/Flex/iOS では、これは List Adapters、List Item Renderers などでは些細なことですが、Win フォームでは非常に扱いにくいようです。

ビューモードをTileに設定するObjectListViewを見てきました。ただし、水平方向にレンダリングする方法はないようです。

フロー レイアウトにユーザー コントロールを設定しようとしました。しかし、画像を読み込んでいるため、メモリ使用量は屋根を通り抜けます。

4

2 に答える 2

1

FlowLayoutPanel コンテナ コントロールを使用して、その WrapContents を false に設定し、FlowDirection を LeftToRight (デフォルト) に設定できます。...そして、おそらく AutoScroll を true にします。


編集

メモリ不足については、Scroll イベントを処理し、必要に応じてコントロールを作成/破棄して仮想化をシミュレートすることを考えてください。

于 2012-12-03T15:16:11.390 に答える
0

自分で画像を描画するために、独自の画像コントロールを派生させてControlオーバーライドOnPaintします。画像のパスまたは名前のプロパティを追加しますが、画像自体をコントロールに保存しないでください。カスタム コントロール c#の Google 。

画像のキャッシュを使用します。これに適したデータ構造は、循環バッファーです。これは、限られた数の画像のみをメモリに保持するのに役立ちます。

于 2012-12-03T15:55:16.013 に答える