2017-12-10 1 views
1

내가이 example 다음과 유사한 코드를 만든 작동하지 않습니다나는 나의 InkCanvas에 PNG를로드하려고하지만

private async void OpenPicture(object sender, RoutedEventArgs e) 
    { 
     var openPicker = new Windows.Storage.Pickers.FileOpenPicker(); 
     openPicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary; 
     openPicker.FileTypeFilter.Add(".png"); 
     openPicker.FileTypeFilter.Add(".jpg"); 
     Windows.Storage.StorageFile file = await openPicker.PickSingleFileAsync(); 
     if (null != file) 
     { 
      try 
      { 
       Windows.Storage.Streams.IRandomAccessStream stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read); 
       using (var inputStream = stream.GetInputStreamAt(0)) 
       { 
        await MyInkCanvas.InkPresenter.StrokeContainer.LoadAsync(stream); 
       } 
       stream.Dispose(); 

       //rootPage.NotifyUser(inkCanvas.InkPresenter.StrokeContainer.GetStrokes().Count + " stroke(s) loaded!", NotifyType.StatusMessage); 
      } 
      catch (Exception ex) 
      { 
       // Report I/O errors during load. 
       //rootPage.NotifyUser(ex.Message, NotifyType.ErrorMessage); 
      } 
     } 
    } 

내가 원하는 모두는 나의 캔버스에 표시되는 것입니다 , 예를 들어 연결 한 것과 같습니다. 그러나 내가 이것을하면 실제로 아무것도로드되지 않습니다. 이전에 .gif 참고 파일로 저장 한 후

답변

1

코드 await MyInkCanvas.InkPresenter.StrokeContainer.LoadAsync(stream);이 라인은 InkCanvas 또는 .JPG .png 파일에서 이미지로드 아니, 그것은 (로드 잉크 스트로크 see docs입니다).

링크를 제공 한 책 응용 프로그램 색상 지정의 예에서 외부 파일의 이미지는 실제로 XAML Image 컨트롤에 표시됩니다. 이 코드 행은로드합니다.

myImage.Source = new BitmapImage(new Uri("ms-appx:///" + _Imgsrc));

컨트롤은 InkCanvas 뒤에 있으며 사용자가 새 이미지를로드 할 때마다 '크기가 Image의 크기에 맞게 변경됩니다.

+0

고맙습니다. 나는 그것이 잉크 부분에서 스크린 샷을 찍을 때 Windows가하는 것과 같은 방식이라고 생각합니까? 실제 캔버스 내부에 이미징 된 이미지를 구현할 방법이 없습니까? – Tomhawk

+0

@Tomhawk UWP의 InkCanvas 내부에 이미지를 표시 할 방법이 없으므로 위에 언급 된 해결 방법이 남아 있습니다. 그리고 색칠 된 결과 (획과 배경 이미지 결합)를 파일로 저장해야하는 경우 [이 문제에 대한 해결책]이 있습니다 (https://stackoverflow.com/questions/37179815/displaying-a-background-image-on). -a-uwp-ink-canvas). –

+0

고마워. 그러나 ISF GIF로 저장하는 것과 같은 방식으로 이미지를 편집 가능하게 유지하려면 어떻게해야합니까? – Tomhawk

관련 문제