2012-06-29 54 views
2

我已經使用路徑創建自定義對象爲:圖像整合

<Path Style="{StaticResource ABC_Style}" ToolTip="object ABC" HorizontalAlignment="Center" VerticalAlignment="Center"></Path> 

ABC_Style定義是:

<Style x:Key="ABC_Style" TargetType="Path"> 
    <Setter ..../> 
    <Setter Property="Fill" Value .../> 
</Style> 

現在,我必須的網眼圖像分配到對象(如內容)。

問題:

  1. 有什麼辦法將圖像整合到它?
  2. 如果是這樣,是否有可能避免圖片被拉伸?

謝謝。

+3

見這[相關問題](http://stackoverflow.com/q/9670109/620360)。 – LPL

+0

你是不是想用圖像填充路徑,即用'ImageBrush'設置'Fill'屬性? – Clemens

回答

1

我能想到的是,你可以創建一個畫刷類似

<ImageBrush ImageSource="image.jpg" x:Key="imageBrush" /> 
    <DrawingBrush x:Key="ThatchBackground" Viewport="0,0,50,50" ViewportUnits="Absolute" Stretch="None" TileMode="Tile"> 
     <DrawingBrush.Drawing> 
      <GeometryDrawing Brush="{StaticResource imageBrush}"> 
        <GeometryDrawing.Geometry> 
         <GeometryGroup> 
          <RectangleGeometry Rect="0,0,50,50"/> 
         </GeometryGroup> 
        </GeometryDrawing.Geometry> 
       </GeometryDrawing> 
     </DrawingBrush.Drawing> 
    </DrawingBrush> 

,並設置路徑填補像下面

<Path Fill="{StaticResource ThatchBackground}"> 

我得到這個從本教程http://wpfplayground.blogspot.com/2011/09/texture-background-in-wpf.html

+1

DrawingBrush完全沒有必要。只需在ImageBrush中設置Viewport =「0,0,50,50」,「ViewportUnits =」Absolute「','Stretch =」Fill「'和'TileMode =」Tile「'並將其用作Fill:'<路徑填充=「{StaticResource imageBrush}」/>'。這是可能的,因爲ImageBrush也是一個TileBrush。 – Clemens