2011-06-13 6 views
0

이제 MainForm의 배경 이미지를 동적으로 변경하려고합니다. 나는 나의 현재 프로젝트에 위치한 변경할C# .NET에서 동적으로 backgroundimage를 변경하는 방법은 무엇입니까?

this.BackgroundImage = Image.FromFile("Bar1.png"); this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;

이미지 ... 그 다음 코드 세그먼트를 썼다. 그러나 FromFile 메서드를 사용하는 방법을 모르겠습니다.

답변

1

FromFile 메서드 here에 대한 설명서를 읽으십시오.

그리고 당신은 당신의 리소스 파일에 이미지가 있다면, 당신은 이런 식으로 액세스 할 수 있습니다

string path = System.IO.Path.GetDirectoryName( 
     System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); 



string filename="yourfilename"; 

this.BackgroundImage = Image.FromFile(Path.Combine(path ,filename)); 

나 :

string customPath = "d:\testpath"; 

string filename="yourfilename"; 

this.BackgroundImage = Image.FromFile(Path.Combine(customPath ,filename)); 
4

는 다음과 같이 시도 이 코드로 애플리케이션 시작 경로를 얻을 수 있습니다 :

Application.StartupPath + "\yourimage" 

하거나

System.Reflection.Assembly.GetExecutingAssembly().Location + "\yourimage"; 
+0

답변을 시도하고 있습니다. 그러나 오류 발생 URI 형식은 지원되지 않습니다. – Soge

+0

오류를 게시 할 수 있습니까? 디버그중인 경우 이미지가 bin/debug 폴더에 있는지 확인하십시오. – danyolgiax

+0

또한 VS에서 "Copy to output dyrectory"속성을 선택하여 확인하십시오. "항상 복사"로 설정하십시오. – danyolgiax

2

당신에게

this.BackgroundImage = Properties.Resources.yourImageName; 
-1
OpenFileDialog dialog = new OpenFileDialog(); 

if (dialog.ShowDialog() == DialogResult.OK) 
{ 
    this.BackgroundImage = Image.FromFile(dialog.FileName); 
    this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; 
} 
+1

질문은 사용자가 배경 이미지를 선택하는 것이 아니라 ... –

-1
  1. 사용하여 EXE가 위치한 디렉토리라는 이름의 배경을 만들 수 있습니다.

    문자열 경로 = System.IO.Directory.GetCurrentDirectory() + "\ 배경 \"을 폼로드 이벤트에 다음 디렉토리

  2. 추가에

  3. 사본 배경 JPG 파일; string filename = "back.jpg"; this.BackgroundImage = Image.FromFile (Path.Combine (path, filename));

동일한 파일 이름을 유지하는 배경 jpg 파일을 변경하면 배경이 변경됩니다.

관련 문제