2017-10-04 7 views
0

TLDR:ImageListとリソース:Winformsで画像を整理する方法は?

プロジェクトで画像を整理するための最良のモデルは何ですか?起動時にImageListを作成し、そのインデックスを使って各画像にアクセスするか、または道を切り開くのが一般的ですか?いずれにしても、理由を説明してください。

詳細な問題:

私は現在、今かなり長い間開発が進められているソフトウェアの一部に取り組んでいます。これはVisual Basicで部分的に書かれており、ソフトウェアのすべての部分のすべての画像を整理するために、ImageListクラスに大きく依存しています。アプリケーションの開始時に、ImageListは、アクセス可能なすべてのイメージファイルのすべての名前を含む巨大な配列を通じて作成されます。イメージが必要なときはいつでも、このオブジェクトにアクセスし、リスト内のイメージのインデックスを使ってイメージを取得する必要があります。

ビジュアルスタジオのリソースは使い勝手が悪く、一部のコントロールはこれらのリストでしか動作しないため、以前は部分的に役立つかもしれないことを理解しています。たとえばToolBarToolStripで置き換えられました) Poppery ImageListがあり、各ボタンはImageListの画像のインデックスを取得するだけです。

私はこの大量のように感じます。ImageListは放棄されなければならず、リソース内にそれらのイメージを整理するための移行が遅くなるはずですが、主に.net開発者ではなく、winformsとそのベストプラクティス。

TLDRで尋ねられるように:プロジェクトで画像を整理するのに最適なモデルは何ですか?起動時にImageListを作成し、そのインデックスを使って各画像にアクセスするか、または道を切り開くのが一般的ですか?いずれにしても、理由を説明してください。

+0

意見質問がオフトピックです例えば。 Winformsはまだサポートされていますが、開発中ではありません。それが現実さ。 – LarsTech

+1

ImageListは、ListViewとTreeViewの画像を提供するためにのみ使用する必要があります。ディープコピーの動作は、大量の画像コレクションを管理するにはあまりにも非効率的です。あなたは 'List 'を使うべきです。彼らがもはや必要でなくなったら、それらを廃棄することを忘れないでください。 –

答えて

0

それはWPFプロジェクト

であれば、私は心

1で2つのアイデアを持っている)

StackPanel ImagesStackPanel = new StackPanel(); 

foreach(Image img in Images) //your images enumerable 
{ 

//here you can add also other elements 
Image _img = (Image)XamlReader.Parse(@"<Image Name="{{here goes the image id}}" Height="400" Width="400" /> "); 

    ImagesStackPanel.Children.Add(_img); 
} 


_Window.Content = ImagesStackPanel; 

例えば、あなたのウィンドウのXAMLでのStackPanelとあなたのXAMLコード

を追加します。 2) あなたがCPU/RAMの使用について心配していない場合は、 とあなたはスタイリングなどについてたくさん気にして、次のようにすることができます

もう1つのアイデアは、ウェブブラウザーまたはcefsharpブラウザーを使用することです。 メディアギャラリーのhtmlコードでhtmlファイルを作成し、ファイルをリソースとして設定し、htmlコードからリソースURLを呼び出します。

あなたはStringBuilderの中で、あなたのHTMLコードをロードし、あなたに設定できる特定の値を置き換えることにより、C#であなたが望む任意の変更を行うことができます{{私の値}}

//the html code --> id='{{my id}}' src='{{img url }}' 

//the c# code -->  _yourStringBuilder.ToString().Replace("{{my id}}",id of the image).Replace("{{img url }}",url of the image) 



//** You can add any animation and css style you want** 
関連する問題