2010-06-04 6 views
1

정적 속성으로 래핑 한 꽤 많은 System.Drawing.Image 리소스가있는 DLL이 있으므로 동적으로 업데이트 할 수 있습니다.WPF 응용 프로그램에서 WinForm 이미지 표시

xaml을 통해 WPF 응용 프로그램에서 이미지를 사용하고 싶습니다.하지만 그림으로 표시 할 수있는 유일한 방법은 수동으로 코드를 통해 수행하는 것입니다.

xaml의 정적 속성에서 wpf 이미지 변환에 winform을 수행하는 방법이 있습니까?

답변

5

변환기를 사용하여 이미지에 직접 바인딩 할 수 있습니다. 여기 윈도우의 예는 다음

<Window.Resources> 
    <WinForms2WPFImageConverter x:Key="WF2WPFDrawingConverter" /> 
</Window.Resources> 

...

This SO question 제가 여기 ValueConverter 같이 구성된 드로잉 변환기를 갖는다.

public class WinForms2WPFImageConverter : IValueConverter { 

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 

     System.Drawing.Image i = (System.Drawing.Image) value; 
     using (MemoryStream drawingStream = new MemoryStream()) 
     { 

      i.Save(drawingStream); 

      i.Seek(0, SeekOrigin.Begin); 

      return System.Windows.Media.Imaging.BitmapFrame.Create(drawingStream); 
     } 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
      throw new InvalidOperationException(); 
    } 
} 

물론 리소스의 선언에서 네임 스페이스를 고려해야합니다.

INotifyPropertyChanged (또는 종속성 속성)를 활용하기 위해 정적 속성을 사용하지 말 것을 권합니다. 따라서 속성이 다른 이미지를 가리킬 때 디스플레이가 자동으로 변경됩니다.

(참고 :.이 VS에서 복사되지, 입력, 그래서 어딘가 구문 오류가있을 수 있습니다)

1

당신은 WPF의 방법을 사용하여 이미지를 결합 할 수있다. 다음 링크에서 충분한 명성이 이해할 수 있지 않는 동안, 답변 등의 의견을 게시 삼가 주시기 바랍니다 주석 제한 동안

http://microsoftdotnetsolutions.blogspot.com/2016/07/convert-winforms-image-to-wpf.html

+0

예입니다. 이 질문에 대한 답변을 알고 있다면, 정교하게 작성하고 좋은 답변 작성을 위해 [StackOverflow guidelines (http://stackoverflow.com/help/how-to-answer)]를 존중하여 작성하십시오. – user3078414

+0

평판이 충분하지 않을 때 주석 달기의 제한 사항을 이해할 수 있지만 답변을 답글로 게시하지 마십시오. 이 질문에 대한 답변을 알고 있다면, 그것을 편집하고, [StackOverflow guidelines (http://stackoverflow.com/help/how-to-answer)]를 잘 작성하여 답변을 작성하십시오. – user3078414

관련 문제