2009-10-01 45 views
6

在我的項目中,我想在自定義控件的側面顯示一個小徽標。由於我沒有畫布,我以爲可能使用可視化畫筆將徽標置於背景中是一個好主意。WPF:幫助!可視化筆刷拉伸所有內容

<VisualBrush> 
    <VisualBrush.Visual> 
     <Rectangle Width="200" Height="200" Fill="Red" /> 
    </VisualBrush.Visual>     
</VisualBrush> 

但是我現在使用的矩形不是200x200。它佔用了完整的可用空間。那不是我想要的。我也試過一個Viewbox並設置了拉伸屬性,但結果是一樣的,因爲最後我不需要一個簡單的Rectangle,而是一個包含許多路徑對象作爲子對象的畫布。一個Viewbox只支持一個孩子。

這有什麼辦法可以解決這個問題嗎?

回答

10

您需要在您的VisualBrush設置TileModeStretchAlignmentXAlignmentY屬性:

<VisualBrush TileMode="None" Stretch="None" AlignmentX="Left" AlignmentY="Top"> 
    <VisualBrush.Visual> 
     <Rectangle Height="200" Width="200" Fill="Red"></Rectangle> 
    </VisualBrush.Visual> 
</VisualBrush> 
+0

完美的作品。非常感謝。 – TalkingCode 2009-10-02 07:39:45

+0

謝謝我錯過了TileMode =「None」和Stretch =「None」 – juFo 2017-08-08 08:45:36

0

加入電網,這組垂直alligment頂部和水平對齊方式爲右 示例代碼

<VisualBrush x:Key="myVisual"> 
     <VisualBrush.Visual> 
      <Grid> 
       <Rectangle Height="200" Width="200" Fill="Red" HorizontalAlignment="Right" VerticalAlignment="Top" ></Rectangle> 
      </Grid> 
     </VisualBrush.Visual> 
    </VisualBrush>