2010-01-27 3 views
2

내 응용 프로그램에서는 ImageSource 원본을 ImageSource에 바인딩하여 외부 DLL에서 가져온 이미지를 표시합니다.WPF : 단색 ImageSource

잘 작동하지만 가끔 내 DLL에서 데이터를 가져 오지 않고 검정색 이미지 만 표시하려고합니다. 이 경우 단색 만 포함 된 ImageSource를 어떻게 만듭니 까?

답변

0

이 필요합니다.

// XAML 
<Grid Background="Black"> 
    <Image x:Name="imgDisplay"/> 
</Grid> 

// C# 
imgDisplay.Source = null; 
// -- OR -- 
imgDisplay.Visibility = Visibility.Collapsed; 
0

예를 들어 일부 속성 사진에 바인딩되는 템플릿 어딘가에 이미지가 있습니다. 실패한 경우 null 값을 반환 할 수 있습니다.

<Image Source="{Binding Path=Photo, IsAsync=True, TargetNullValue={StaticResource EmptyImageDrawing}}"/> 

는 그리고 어딘가에 자원 당신은 다른 방법은 배경 색상을 제공하는 것입니다, 그리고 이미지를 표시하지

<DrawingImage 
       x:Key="EmptyImageDrawing"> 
       <DrawingImage.Drawing> 
        <DrawingGroup> 
         <GeometryDrawing> 
          <GeometryDrawing.Brush> 
           <VisualBrush 
            AlignmentX="Center" 
            AlignmentY="Center" 
            Stretch="None"> 
            <VisualBrush.Visual> 
             <TextBlock 
              Text="Failed to load photo" 
              FontFamily="Calibri" 
              FontSize="70" 
              HorizontalAlignment="Center" 
              VerticalAlignment="Bottom" 
              TextAlignment="Center" 
              TextWrapping="Wrap"/> 
            </VisualBrush.Visual> 
           </VisualBrush> 
          </GeometryDrawing.Brush> 
          <GeometryDrawing.Geometry> 
           <RectangleGeometry 
            Rect="0,0,1920,1080" /> 
          </GeometryDrawing.Geometry> 
         </GeometryDrawing> 
        </DrawingGroup> 
       </DrawingImage.Drawing> 
      </DrawingImage>