我有一个64x64图像,我正在使用它作为VisaulBrush的来源,我在控件的背景上平铺。但是,基于某些运行时逻辑,我想更改可视画笔的原点。不是瓷砖大小,只是“左上角”的位置,如果你愿意的话。换句话说,认为它不是作为瓷砖本身的偏移量,而是作为控制图块开始处的位置的偏移量。
然而,除了通过使用原始图像使用从特定负偏移开始的2x2图案(因此将2x2剪裁到图块的大小)手动渲染为相同尺寸的第二图像来伪装它,然后使用该图像作为实际瓷砖画笔的来源,不知道我还能做到这一点。我很惊讶我没有看到任何类型的TileOffset或类似的东西。可能最终会滚动我自己的刷子子类,正是这样做。
除非别人知道更简单的方法......:)
答案 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" />
由于TileBrush
是ImageBrush
的基础,与VisualBrush
一样,这同样适用于VisualBrush
。