2014-05-22 3 views
0

사용자가 특정 경로를 통해 이미지를로드 할 수있는 응용 프로그램을 만들고 있습니다. 그런 다음로드 된 이미지의 경로가 저장되고 다음에 사용자가 문서를 다시 열고 자 할 때 경로를 기반으로 이미지가로드됩니다.로드 된 이미지가없는 경우 기본 "이미지"를 표시하는 방법은 무엇입니까?

하지만, 내가 이전 경로 (이미지가 삭제/이동) 무효 인 경우를 대비, 처리하는 경우, 그것은 개체의이 종류가 보여 최선을 다하고 오류 아니지만 :

enter image description here

그 이미지가 없어도 응용 프로그램을 만들 수있는 방법이 있는지 궁금합니다. 내 말은, 아마도 C#에는 그런 종류의 "누락 된"이미지를위한 특정 속성이 있을까요?

감사합니다.

P. 그리고 위의 "누락 된"이미지는 진정으로 "누락 된"이미지입니다.

답변

3

Converter을 만들면 맞춤 설정이 가능합니다.

[ValueConversion(typeof(string), typeof(ImageSource))] 
public class EmptyImageToImageSourceConverter : IValueConverter 
{ 
    /// <summary> 
    /// Converts an empty string value into the DefaultImagePath property value if it exists, or a DependencyProperty.UnsetValue otherwise. 
    /// </summary> 
    public string DefaultImagePath { get; set; } 

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     if (value == null || targetType != typeof(ImageSource)) return DependencyProperty.UnsetValue; 
     string imagePath = value.ToString(); 
     return imagePath.IsNullOrEmpty() ? DefaultImagePath.IsNullOrEmpty() ? DependencyProperty.UnsetValue : DefaultImagePath : imagePath; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     return DependencyProperty.UnsetValue; 
    } 
} 

그런 다음이처럼 사용할 수 있습니다 : 기본 Image 경로 설정 할 수 있도록하기위한 속성을 추가

<Converters:EmptyImageToImageSourceConverter x:Key="EmptyImageToImageSourceConverter" 
    DefaultImagePath="pack://application:,,,/AppName;component/Images/DefaultImage.png" /> 

주의를 그 같은 string 파일 경로와이 Converter 작품 BitMapImage 또는 ImageSource 개체가 아닙니다. 또한 표시 할 기본 이미지를 제공해야합니다.

2

이미지 컨트롤의 ImageFailed-Event를 사용할 수 있습니다.

이벤트가 발생하면 거기에 오류 이미지를 설정하십시오.

<Image src= ImageFailed="OnImageFailed" /> 
관련 문제