2010-12-21 30 views
6

我有一個問題ImageBrush不要在調整大小時縮放ImageBrush,重複它!

<Window ... > 
    <Grid> 
     <Grid.Background> 
      <ImageBrush ImageSource="Controls\Images\notebook_paper_Line.jpg" TileMode="FlipX" 
         Viewport="0,0,1,0.09" /> 
     </Grid.Background>   
    </Grid> 
</Window> 

我想在用戶調整窗口重複圖像。但是,當用戶調整窗口大小時,圖像會變大。 (請注意,圖像尺寸很小,我使用TileModeViewport來重複它,並調整它的大小時發生問題!)。

任何XAML代碼都會很棒! :)

,我很抱歉壞英語!

回答

13

默認情況下,TileBrush的視口爲0,0,1,1,ViewportUnits爲RelativeToBoundingBox,表示0,0,1,1映射到整個目標大小(在這種情況下,網格)。

所以,如果你想平鋪ImageBrush,你會想調整視口。如果要將視口設置爲0,0,.5,.5,則應該看到圖像平鋪2 x 2(因爲每個圖塊將爲網格大小的50%x 50%),或者0,0,0.25, 0.1會產生4x10平鋪等等......

但是,這仍然不能防止圖像重新縮放。所以在你的情況下,你可能想要的是將視口設置爲圖像的大小,並將ViewportUnits設置爲Absolute而不是RelativeToBoundingBox。

在下面的xaml中,我有一個24x24像素的圖像,所以我相應地設置了我的視口。這將爲網格的整個大小重複平鋪圖像。如果網格調整大小,則會出現更多的圖塊。

<ImageBrush ImageSource="Images\book_green.png" TileMode="FlipX" 
      Viewport="0,0,24,24" ViewportUnits="Absolute" /> 

我希望有幫助。

+0

YEAH!這正是我想要的,謝謝! :) – Jalal 2010-12-21 20:37:20

相關問題