2010-08-24 140 views
0

我需要平铺WPF图像控件中的图片(如在Windows桌面上(背景图块属性))。有人知道这是可能的天气,如果是这样,怎么样?WPF:平铺图像

最好的问候, 亚历山大

回答

1

这是我从MSDN借用的示例Rectangle。

DrawingBrush myBrush = new DrawingBrush(); 

GeometryDrawing backgroundSquare = 
    new GeometryDrawing(
     Brushes.White, 
     null, 
     new RectangleGeometry(new Rect(0, 0, 100, 100))); 

GeometryGroup aGeometryGroup = new GeometryGroup(); 
aGeometryGroup.Children.Add(new RectangleGeometry(new Rect(0, 0, 50, 50))); 
aGeometryGroup.Children.Add(new RectangleGeometry(new Rect(50, 50, 50, 50))); 

LinearGradientBrush checkerBrush = new LinearGradientBrush(); 
checkerBrush.GradientStops.Add(new GradientStop(Colors.Black, 0.0)); 
checkerBrush.GradientStops.Add(new GradientStop(Colors.Gray, 1.0)); 

GeometryDrawing checkers = new GeometryDrawing(checkerBrush, null, aGeometryGroup); 

DrawingGroup checkersDrawingGroup = new DrawingGroup(); 
checkersDrawingGroup.Children.Add(backgroundSquare); 
checkersDrawingGroup.Children.Add(checkers); 

myBrush.Drawing = checkersDrawingGroup; 
myBrush.Viewport = new Rect(0, 0, 0.25, 0.25); 
myBrush.TileMode = TileMode.Tile; 

exampleRectangle.Fill = myBrush; 

它演示了如何平铺一个矩形。这里是MSDN的链接: WPF Brush Overview - MSDN

+1

谢谢你的回复。现在,我得到以下XAML代码: <图像刷视口= “0,0,0.25,0.25” TILEMODE = “瓷砖” 的ImageSource = “Background1.png”/> 这可以平铺图片;但是当我调整Rectangle的大小时,“平铺图片”就会被拉伸。但是,我希望它们重复(如HTML网页上的背景图像)。 – alxppp 2010-08-24 10:59:47

+1

Found the solution: alxppp 2010-08-24 13:51:51

+0

对不起,我不能回复你的评论,我只是醒了:P我很高兴你把它全部排序。 :d – 2010-08-25 05:44:02

1

如果你正在绘制一个DrawingBrush你的形象,你可以将属性TileMode设置为TileMode.Tile。假设我已经正确地理解了你的问题,它会做你想做的。