0

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

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

除非其他人知道更简单的方法来做到这一点...... :)

4

1 回答 1

2

以及它在此处说明的TileBrushs 视口属性:

获取或设置 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" />

AsTileBrush是一个 base for ImageBrushjust as for VisualBrushthis 同样适用于VisualBrush

于 2011-03-30T11:15:08.103 回答