2010-03-22 5 views
2

ImageSource (BitmapSource)로로드 한 16x16 .png 파일이 있으며 tabcontrol 헤더의 이미지에서 사용할 때 정상적으로 작동합니다.WPF BitmapSource를 창에 대한 아이콘으로 변환

이제는 사용자가 문서 탭을 드래그 할 때 부동 이미지 (WPF Window 클래스에서 상속)에서 동일한 이미지를 사용하려고합니다. (이것은 AvalonDock으로 탭 헤더의 이미지를 허용하도록 조정되었습니다)

웹에서 많은 검색을 한 후에 Window.Icon에 BitmapFrame이 필요하지만 모든 샘플 코드는 .ico 파일이 있다고 가정합니다. 사용할 수있는 내 경우에는 없습니다.

나는 다음 코드를 시도 (플러스 등 동결, 복제 등의 변형) :

var image = (Image) content.Icon; 
var bitmapSource = (BitmapSource) image.Source; 

Icon = BitmapFrame.Create(bitmapSource); 

을하지만 쇼() 메서드가 호출 될 때, 예외가 발생 : "유형의 예외 'System.ExecutionEngineException '던져졌다.'

Windows에서 아이콘을 표시 할 수 있도록 호환 가능한 비트 맵을 어떻게 만들 수 있습니까?

답변

0

이미지를 동적으로로드 할 수 있어야합니까, 아니면 항상 같은 아이콘을 사용합니까?

이미지가 런타임에 결정되지 않으면 항상 이미지를 수동으로 변환하여 Microangelo 또는 비슷한 것을 사용하여 .ico 파일을 생성 할 수 있습니다. 분명히 비행 중에 아이콘을 만들 필요가 있다면 분명히 도움이되지 않습니다.

+0

런타임에 런타임에 메모리에 아이콘 리소스를 만드는 방법을 묻고 싶습니다. – simmotech

0

BitmapFrame.Create가 올바른 것으로 나타났습니다. 기존 BitmapSource보다는 Uri를 전달하면됩니다.

관련 문제