WPF: изображение плитки

Мне нужно разместить изображение в элементе управления изображениями WPF (например, на рабочем столе Windows (свойство плитки фона)). Кто-нибудь знает погоду, это возможно, и если да, то как?

С уважением, Александр


person alxppp    schedule 24.08.2010    source источник


Ответы (2)


Вот образец прямоугольника, который я позаимствовал из MSDN.

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 - MSDN

person Community    schedule 24.08.2010
comment
Спасибо за ваши ответы. Теперь у меня есть следующий код XAML: ‹Rectangle› ‹Rectangle.Fill› ‹ImageBrush Viewport = 0, 0, 0,25, 0,25 TileMode = Tile ImageSource = Background1.png /› ‹/Rectangle.Fill› ‹/Rectangle› Это мозаичное изображение рисунок; но когда я изменяю размер прямоугольника, мозаичные изображения растягиваются. Однако я хочу, чтобы они повторялись (как фоновое изображение на веб-странице HTML). - person alxppp; 24.08.2010
comment
Нашел решение: ‹ImageBrush TileMode = Tile Viewbox = 0, 0, 320, 320 ViewboxUnits = Absolute Viewport = 0, 0, 320, 320 ViewportUnits = Absolute ImageSource = Background1.png /› - person alxppp; 24.08.2010
comment
Извините, я не смог ответить на ваш комментарий, я только что проснулся: P Я рад, что вы все разобрали. : D - person ; 25.08.2010

Если вы рисуете изображение с помощью _1 _ вы можете установить свойство _2 _ на TileMode.Tile. Если я правильно понял ваш вопрос, он делает то, что вы хотите.

person Mizipzor    schedule 24.08.2010