0

この画像によると:

ここに画像の説明を入力

Main.data プロジェクトに Gallery という名前のフォルダーがあります。メイン プロジェクトの参照として Main.Data.Dll を追加しました。この画像をメインウィンドウ形式で表示したいので、画像のビルド アクションをリソースに変更します。メインプロジェクトでこのフォルダーアドレスを取得する方法を知りたいですか?

メインウィンドウで:

 private void LoadImages()
        {
            foreach (var imgaddress in Directory.GetFiles((Here), "*.jpg", SearchOption.AllDirectories))
            {
                //Do Some...
            }
        }

何を(ここに)書かなければなりませんか?

4

1 に答える 1

1

おそらくもっと洗練された解決策がありますが、次のような方法で、Main.Data 内のすべての jpg のリソース文字列または URI を取得できます。

private void LoadImages ()
{
    var asm = Assembly.LoadFrom("Main.Data.dll");
    var rm = new System.Resources.ResourceManager(asm.GetName().Name + ".g", asm);
    var resourceSet = rm.GetResourceSet(Thread.CurrentThread.CurrentCulture, true, true);
    var resourceUris = new List<Uri>();
    var resourceStrings = new List<String>();
    foreach (var resource in
        resourceSet.Cast<DictionaryEntry>().Where(resource => ((string) resource.Key).EndsWith("jpg")))
    {
        resourceStrings.Add((string)resource.Key);
        resourceUris.Add(
            new Uri(String.Format("pack://application:,,,/Main.Data;component/{0}",
                                    ((string) resource.Key))));
    }

    rm.ReleaseAllResources();

    // Do something with resourceStrings or resourceUris...

}
于 2012-11-10T08:20:49.227 に答える