C#でWindowsフォームアプリケーションを作成しました。ピクチャーボックスと背景画像を使ったインターフェースをデザインしました。しかし、ハードコーディングした後に画像を追加する必要があります。これらのインターフェイスをカスタマイズする方法がわかりません。(基本的にテーマ)、背景画像、ピクチャーボックス画像。
2 に答える
この変更を行うのはいつですか? この変更を行いたいときに実行されるコードを追加できるイベント ハンドラを追加できることを願っています。
変更の仕方について。コンポーネントのメンバー変数の名前が必要になります。
PictureBox
という名前の があるとしますPicMyPicture
。次に、これを行うことができます:
PicMyPicture.Image = image;
また
PicMyPicture.BackGroundImage = image;
または他のプロパティとコンポーネントについても同様です。
IDE を見てください。イベント ハンドラを定義できる可能性があります。たとえば、Visual Studio のプロパティ ウィンドウ (Visual Studio を使用していますか?) または他の IDE の同様の場所で、コンポーネントのイベントを見つけることができます。
わかりましたが、上記には問題があります...どこからその画像を取得しますか?
ファイルからロードされたり、アプリケーションのリソースからロードされたり、インターネットからダウンロードされたり、データベースから復元されたり、実行時に生成されることさえあります。
あなたの場合のより一般的なものはリソースとファイルなので、それらについて説明します。
次のコードは、ディスクからイメージをロードします。
var image = Image.FromFile(@"C:\path\path\some.png");
あなたは疑問に思うかもしれません...最終ユーザーがアプリケーションをどこに置くかわからない場合、どうすればパスを書くことができますか? アプリケーションの作業ディレクトリへの相対パスからファイルをロードするには、次のようにします。
var path = Environment.CurrentDirectory;
if (!path.EndsWith(Path.DirectorySeparatorChar.ToString()))
{
path += Path.DirectorySeparatorChar;
}
path += "some.png";
var image = Image.FromFile(path);
次のコードは、アプリケーションのリソースから画像を読み込みます。
var image = new Bitmap
(
System.Reflection.Assembly.GetEntryAssembly().
GetManifestResourceStream("MyProject.Resources.myimage.png")
);
事前にリソースをプロジェクトに追加したことを確認する必要があります。方法については、IDE のドキュメントを参照してください。