你可以使用具有偏移的VisualBrush渲染吗?

时间:2011-03-29 22:38:43

标签: wpf background tile imagebrush

我有一个64x64图像,我正在使用它作为VisaulBrush的来源,我在控件的背景上平铺。但是,基于某些运行时逻辑,我想更改可视画笔的原点。不是瓷砖大小,只是“左上角”的位置,如果你愿意的话。换句话说,认为它不是作为瓷砖本身的偏移量,而是作为控制图块开始处的位置的偏移量。

然而,除了通过使用原始图像使用从特定负偏移开始的2x2图案(因此将2x2剪裁到图块的大小)手动渲染为相同尺寸的第二图像来伪装它,然后使用该图像作为实际瓷砖画笔的来源,不知道我还能做到这一点。我很惊讶我没有看到任何类型的TileOffset或类似的东西。可能最终会滚动我自己的刷子子类,正是这样做。

除非别人知道更简单的方法......:)

1 个答案:

答案 0 :(得分:2)

以及{4}} TileBrushs Viewport Property:

  

获取或设置TileBrush

的基础图块的位置和尺寸

您可以轻松调整ViewPort的前两个参数以偏移图块。例如:

<ImageBrush ImageSource="..."
  Viewport="0,0,20,20" ViewportUnits="Absolute"
  TileMode="Tile" />

如果那是你的基础并且你想要在x方向偏移这个5px,你可以:

<ImageBrush ImageSource="..."
  Viewport="5,0,20,20" ViewportUnits="Absolute"
  TileMode="Tile" />

由于TileBrushImageBrush的基础,与VisualBrush一样,这同样适用于VisualBrush