【发布时间】:2013-02-14 22:11:17
【问题描述】:
我有一个类似绘画的应用程序,当我移动鼠标时,它会通过折线绘制一条线。现在我想用图案图像替换折线轮廓,因此当我在画布中移动鼠标时,它会将该图像重复为折线的轮廓。我已经写了这段代码:
<Canvas x:Name="canvas" Background="#00FFFFFF" MouseMove="Canvas_MouseMove">
<Polyline x:Name="polyline" StrokeThickness="20">
<Polyline.Stroke>
<VisualBrush >
<VisualBrush.Visual>
<Image Source="1.png"></Image>
</VisualBrush.Visual>
</VisualBrush>
</Polyline.Stroke>
</Polyline>
</Canvas>
唯一的问题是它使用图像作为整个画布的不可见背景,当我移动鼠标时,部分背景变得可见!看看这张照片就明白我的意思了:
如果你想看看,这也是我的图像模式:
那么你知道我应该如何使用这张图片作为我的折线轮廓吗?
【问题讨论】:
-
你能提供一张应该是什么样子的图片吗?在您的情况下,“大纲”到底是什么意思?
-
我想用一个小的重复图像替换折线笔划中定义的简单线。结果将类似于我当前的输出(goo.gl/2wPKN),但图像将在折线的路径中重复,而不是作为画布的背景。我希望我说清楚了,但如果我仍然没有任何意义,请原谅!
-
您是否尝试过如下答案所示的平铺画笔?您可以将ViewportUnits 设置为
Absolute并设置适当的视口大小。 -
是的,我尝试了这个答案,此代码
<ImageBrush ImageSource="1.png" Viewport="1,1,1,1" TileMode="Tile" />给出与以前相同的结果,并且通过添加ViewportUnits="Absolute"它只会给出一个没有任何图像的恒定粉红色画笔。 -
尝试将 Viewport 设置为有意义的值,例如
Viewport="0,0,20,20"左右。
标签: wpf image polyline stroke visualbrush