2014-09-04 3 views
0

이미지의 위치 문자열이 있는데 XAML 이미지 개체를 만들고 문자열 소스로 변경 한 다음 스택 패널에 추가하려고합니다.문자열을 새 이미지로 변환 XAML C#

System.Windows.Media.Imaging.BitmapImage tmp = new System.Windows.Media.Imaging.BitmapImage(); 
tmp.UriSource = new Uri("Assets/image.jpg", UriKind.RelativeOrAbsolute); 
Image image = new Image(); 
image.Source = tmp; 

문제는 내가 Windows.UI.Xaml.Media.ImageSource에 System.Windows.Media.Imaging.BitmapImage을 변환 할 수없는 것이다 : 여기

는 지금까지 시도했습니다 무엇 .

저는 Microsoft MSDN 웹 사이트에서이 코드를 직접 사용하고 있으며 왜 작동하지 않는지 이해할 수 없습니다. 나는 또한 ImageSource 객체를 만들려고 노력했지만 아무 것도 얻을 수없는 것 같습니다. 그것은 실망 스럽다.

답변

2

string에서 Image을 표시하는 것은 WPF에서 쉽습니다. 먼저 Visual Studio의 Add Existing Item 명령을 사용하여 파일이 빌드 동작 값이 인 리소스 파일을 추가하도록 프로젝트에 추가되었는지 확인하십시오. 다음으로 올바른 파일 경로를 사용해야합니다. 당신은 전체 자세한 내용은 MSDN에 Pack URIs in WPF 페이지를 참조 경우가 가장 좋습니다,하지만 당신은 응용 프로그램에서 거의 모든 곳에서이 형식을 사용할 수 있습니다

pack://application:,,,/ProjectOrAssemblyName;component/SubFolderName/ImageName.png 

는 해당 이미지를 표시하려면, 당신은 단순히 string에 그 값을 설정할 수 있습니다 재산 및 데이터는 UI에 Image.Source 속성에 바인딩하거나 직접 사용

<Image Source="{Binding YourImageSource}" /> 

...

<Image Source="pack://application:,,,/ 
    ProjectOrAssemblyName;component/SubFolderName/ImageName.png" /> 
0

을 당신 LSO이 시도 할 수 있습니다 :

BitmapImage BitmapToImageSource(System.Drawing.Bitmap bitmap, System.Drawing.Imaging.ImageFormat imgFormat) 
     { 
      using (MemoryStream memory = new MemoryStream()) 
      { 
       bitmap.Save(memory, imgFormat); 
       memory.Position = 0; 
       BitmapImage bitmapImage = new BitmapImage(); 
       bitmapImage.BeginInit(); 
       bitmapImage.StreamSource = memory; 
       bitmapImage.CacheOption = BitmapCacheOption.OnLoad; 
       bitmapImage.EndInit(); 

       return bitmapImage; 
      } 
     } 

(출처 : http://pastebin.com/PAJ7Cd0x)

감사를

1

문제는 내가 System.Windows.Media.Imaging.BitmapImage을 변환 할 수없는 것이다 ~ Windows.UI.Xaml.Media.ImageSource.

ImageSource 참조에 따르면 WPR이 아닌 WinRT 앱을 사용하고있는 것으로 보입니다.

WinRT 앱을 타겟팅하는 경우 Windows.UI.Xaml.Media.Imaging.BitmapImage을 사용해야합니다. System.Windows.Media.Imaging.BitmapImage은 WPF에서 사용하기위한 것입니다.