私はいくつかのgifファイルとmp3ファイルを持つC#プロジェクトを持っています私のプロジェクトでgifファイルやmp3ファイルを隠すには?
どのようにプロジェクト内でそれらのファイルを組み合わせることができますか?
(私は彼らがユーザーに表示したくない)
私はいくつかのgifファイルとmp3ファイルを持つC#プロジェクトを持っています私のプロジェクトでgifファイルやmp3ファイルを隠すには?
どのようにプロジェクト内でそれらのファイルを組み合わせることができますか?
(私は彼らがユーザーに表示したくない)
これらはリソースとしてプロジェクトに含める必要があります。その後、DLLから読み込んで後でアクセスする必要があります。あなたは、単にリソースにそれらをドロップすることができますGIFファイルについて
(プロジェクト - に>プロパティダイアログ)、その後、あなたはおそらく埋め込まれたリソースを使用する必要がありますmp3ファイルの場合
var img = Properties.Resources.GifName;
経由でそれらにアクセスして、それらをストリームとして読んでください。これを行うには、プロジェクト内でこれらの種類のファイル専用のフォルダにアイテムをドラッグします。エクスプローラでファイルを右クリックしてプロパティペインを表示し、[ビルドアクション]を[埋め込みリソース]に設定します。
次に、このようなコード(vbからの未テストの翻訳、申し訳ありません)を使用して、ストリームとして戻すことができます。ストリームをプレーヤーが処理できるものに変換するのはあなた次第です。ここで
using System.Linq; // from System.Core. otherwise just translate linq to for-each
using System.IO;
public Stream GetStream(string fileName) {
// assume we want a resource from the same that called us
var ass = Assembly.GetCallingAssembly();
var fullName = GetResourceName(fileName, ass);
// ^^ should = MyCorp.FunnyApplication.Mp3Files.<filename>, or similar
return ass.GetManifestResourceStream(fullName);
}
// looks up a fully qualified resource name from just the file name. this is
// so you don't have to worry about any namespace issues/folder depth, etc.
public static string GetResourceName(string fileName, Assembly ass) {
var names = ass.GetManifestResourceNames().Where(n => n.EndsWith(fileName)).ToArray();
if (names.Count() > 1) throw new Exception("Multiple matches found.");
return names[0];
}
var mp3Stream = GetStream("startup-sound.mp3");
var mp3 = new MyMp3Class(mp3stream); // some player-related class that uses the stream
あなたは、私が使用して、より完全な "ResourceHelper" がある
は、リソースファイル(RESX)でそれらを含めます。
リソースとして割り当てる必要があります。 VSの[プロパティ]パネルを表示する場合、ビルドアクションが[リソース]に設定され、[出力ディレクトリにコピー]が[コピーしない]に設定されていることを確認してください。 [リソース]タブのプロジェクトプロパティ内からリソースを管理することもできます。
これらを埋め込みリソースとして追加すると、それらがdllにコンパイルされます。
最初にソリューションエクスプローラにドラッグしてプロジェクトに追加し、そのプロパティに移動してビルドアクションを埋め込みリソースに変更します。
を始めるためにいくつかのリンクです。あなたがそれを望むかどうかを私に教えてください(VB-> C#トランスレータに渡すだけです) –