2012-02-08 4 views
2

저는 ImageBrush와 SolidColorBrush를 가지고 있습니다. 사실 이제는이 속성으로 캔버스 배경을 설정하려고합니다.ImageBrush와 SolidColorBrush를 병합 하시겠습니까? (캔버스 배경으로)

배경을 내 ImageBrush 또는 SolidColorBrush로 쉽게 설정할 수 있지만 일종의 병합을 수행 할 수 있습니까? 사실 ImageBrush.Stretch가 유니폼으로 설정되어 있기 때문에 배경색이 뒤에서 볼 수 있습니다! ("채우기"의 경우는 해당되지 않습니다.)

이제 Brush는 추상 클래스이므로 이미지는 이미지를 확장하는 것이지만 실제로는 간단하고 공통적 인 것으로 들리는 작업을 많이합니다. 나 ...

다른 해결책이 없습니까?

답변

1

이미지의 절대 크기와 더 중요한 것은 종횡비가 무시된다는 단점이 있지만 어떨까요? 그러나 그것은 당신에게 힌트를 줄지도 모릅니다.

<Canvas> 
    <Canvas.Background> 
     <DrawingBrush> 
      <DrawingBrush.Drawing> 
       <DrawingGroup> 
        <GeometryDrawing Brush="Orange"> 
         <GeometryDrawing.Geometry> 
          <RectangleGeometry Rect="0,0,1,1"/> 
         </GeometryDrawing.Geometry> 
        </GeometryDrawing> 
        <ImageDrawing ImageSource="C:\Users\Public\Pictures\Sample Pictures\Desert.jpg" Rect="0.2,0.2,0.6,0.6" /> 
       </DrawingGroup> 
      </DrawingBrush.Drawing> 
     </DrawingBrush> 
    </Canvas.Background> 
</Canvas> 
+0

코드 숨김으로 처리하고 싶었습니다. xaml에서 나는 다음과 같은 코드를 보았습니다.

+0

물론,하지만 '병합 된'브러시가 아닙니다. 자원으로 정의 할 수도 있습니다. – Clemens

관련 문제