2012-02-08 32 views
2

我有一個ImageBrush和一個SolidColorBrush。 問題是我現在想用這些屬性設置我的畫布背景。合併ImageBrush和SolidColorBrush? (作爲畫布的背景)

我可以很容易地將我的背景設置爲我的ImageBrush或我的SolidColorBrush,但我可以做一種合併? 事情是,我的ImageBrush.Stretch設置爲統一,所以我可以看到背後的背景顏色! (它不會是「Fill」的情況)

現在,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中,我得到了以下對我來說更簡單的代碼: 2012-02-09 08:11:05

+0

當然,但這不是一個「合併」的畫筆。你可能想要把它定義爲資源等等。 – Clemens 2012-02-09 08:38:05