2009-04-21 5 views
6

내 버튼 중 하나에 적용된 배경 이미지를 동적으로 변경해야하지만 방법을 알 수는 없습니다. 이미지가 프로젝트에 추가되고 빌드 조치가 자원으로 설정됩니다. 이 성공적으로 컴파일하지만 DirectoryNotFoundException 말과 충돌합니다코드 뒤에서 리소스 이미지 사용

buttonUnits.Background = new ImageBrush(new BitmapImage(new Uri("/Images/InchDOWN.png",UriKind.Relative))); 

: 나는 다음과 시도했다 "경로의 일부를 찾을 수 없습니다 'C : \ 이미지 \ InchDOWN.png'."

저는 앱이 디스크에서 이미지를 찾는 것을 원하지 않습니다. 어떻게 이미지를 임베디드 리소스로 사용할 수 있습니까? 빌드 액션을 임베디드 리소스 (Embedded Resource)로 변경하는 작업이 필요하다고 생각 하겠지만 코드에서이 리소스를 어떻게 사용합니까?

답변

8

이미지를 리소스 이 아닌 임베디드 리소스로 빌드해야합니다. 리소스는 특히 WPF 프로젝트에서 사용됩니다.

은 절차 적 코드에서이 기능을 사용하려면

buttonUnits.Background = new ImageBrush(new BitmapImage(new Uri("pack://application:,,,/Images/InchDOWN.png"))); 

이 내가 추천 XAML에서 할 훨씬 더 쉽게입니다.

편집 나는 문제가 될 수 이미지 전에 슬래시를 잊어 버렸습니다. 더 많은 정보가 필요하면 여기 MSDN article about pack Uris입니다.

어쩌면 당신이 달성하고자하는 바를 정확히 설명하고 다중 상태 버튼 문제에 대한 다른 접근법을 발견했는지에 관한 질문을 게시해야 할 것입니다.

+0

나는이 시도하고 NotSupportedException 말하는 "URI 접두사 인식 할 수 없습니다." XAML에서 이미지를 쉽게 설정할 수 있지만 목표는 일종의 다중 상태 단추이며 XAML에서 수행하는 방법을 모르는 것에 동의합니다. –

관련 문제