WPF的ImageBrush是一個比較常見也比較復雜的筆刷,它繼承自圖塊筆刷(TileBrush)。使用圖塊畫筆繪制區域涉及以下三個組成部分:內容、基本圖塊和輸出區域。基本輸出過程如下圖所示:
其中,圖塊部分有Viewbox控制,輸出區域有Viewport控制,它們默認情況下都是一個(0,0,1,1)的矩形,通過相對位置控制圖象的輸出。可以組合使用,下表就是一些簡單的示例:
|
|
|
默認情況下,Viewport和Viewbox都是使用的相對范圍,默認是(0,0,1,1)。如果要設置絕對范圍,可以設置ViewboxUnits="Absolute"和ViewportUnits="Absolute"
平鋪筆刷
有時我們需要像牆紙那樣講一個圖片重復繪制,如下圖所示
簡單的方法是
- 設置Viewport,使得原圖只投影到一部分輸出區域(投影到全部輸出區域看不到平鋪效果)
- 設置TileMode為Tile
Viewport="0,0,0.5,0.5" Viewbox="0,0,0.5,0.5" TileMode="Tile"
|
|
|
另外,還有一些比較常見的屬性:AlignmentX,AlignmentY,Stretch。這里就不一一介紹了,具體可參看MSDN文檔:
https://msdn.microsoft.com/zh-cn/library/aa970682(v=vs.110).aspx