2013-12-22 4 views
0

이미지는 디자이너에 표시되지만 vs2013에서 디버그로 실행 한 경우 exe가 동일한 폴더의 이미지로 직접 실행 한 경우에도 오류 : 이 표시됩니다.런타임시 드라이브의 창 배경을 이미지로 설정합니다.

information: 'Provide value on 'System.Windows.Baml2006.TypeConverterMarkupExtension' threw an exception.' Line number '12' and line position '10'. 

오류가 발생하여 이미지를 찾을 수 없습니다. 또한 xaml보기에서 이미지를 가져 가면 이미지가 나타납니다.

project file expected in c:\user\bsienn\docs\vs2013\project\wpf1\wpf1\image1.jpg 

사진은 실제로 해당 경로에 있지만 사용할 수 있습니다.

양식을 배경으로 이미지를 추가하고 싶습니다. 리소스에 이미지를 추가하고 싶지 않습니다. 필요할 때 이미지를 변경하고 싶습니다. 나는 또한 bin/debug 및 메인 응용 프로그램 폴더 (wpf1/image1.jpg andalso wpf1/wpf1/image1.jpg)에 배치하려고했던 exe 파일로 이미지를 배치했습니다. 여기

<Window.Background> 
    <ImageBrush ImageSource="image1.jpg"/> 
</Window.Background> 

App structure: 
app.exe 
image1.jpg 
Desired outcome, form with background image 

답변

1

이 할 것

BitmapImage bitimg = new BitmapImage(); 
bitimg.BeginInit(); 
bitimg.UriSource = new Uri(@""+AppDomain.CurrentDomain.BaseDirectory+"backgroundImg.jpg", UriKind.RelativeOrAbsolute); 
bitimg.EndInit(); 
MainFormBgrImg.ImageSource = bitimg; 

해당 AppDomain.CurrentDomain.BaseDirectory : 응용 프로그램이에서 실행했던 곳에서 반환 현재 작업 디렉토리, 예 : c : \ users \ admin \ Desktop \

0

출력 폴더에 이미지를 넣는 것은 당신의 XAML에서 사용할 수 있도록하지 않습니다 안내하시기 바랍니다 XAML 코드입니다.

add image in your project으로 설정하고 Build ActionResource으로 설정해야합니다.

프로젝트에서 추가 된 이미지를 마우스 오른쪽 버튼으로 클릭하고 속성 열기 -> 빌드 동작을 리소스로 설정하십시오.

<Window.Background> 
    <ImageBrush x:Name="MainFormBgrImg"/> 
</Window.Background> 

코드 뒤에 :

XAML을 원하는대로

+0

나는 그 일을하는 법을 알고 있지만, 리소스에 이미지를 추가하고 싶지 않은 경우 bcoz 필요할 때 이미지를 변경하고 싶습니다. 그래서 이미지가 상주하는 실행 경로에서 이미지를 가져와야합니다. – ADi

+0

두려워요. 프로젝트의 리소스로 이미지를 추가하지 않으면 불가능합니다. –

+0

omg :(이것은 이상 할 정도로 그렇게 불가능합니다. – ADi

관련 문제