我有使用标准Inkcanvas的应用程序。标准应用看起来像 Figure 1.和所有应用程序代码(XAML)都在这里:
<Window x:Class="WpfApplication18.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<InkCanvas>
<InkCanvas.DefaultDrawingAttributes>
<DrawingAttributes x:Name="attribute" Width="40" Height="40" Color="BlueViolet" />
</InkCanvas.DefaultDrawingAttributes>
</InkCanvas>
</Grid>
我想知道如何创建非标准的Inkcanvas Brush with Image(Image Mask?),如下所示: Figure 2。我想使用Inkcanvas和简单的“背景”图像进行绘画 (jpg,png或其他)。是否有一个简单的方法来制作它?你能用代码举例吗?
在我的应用程序中,我想在标准的Inkcanvas上进行绘制,之后转换Inkcanvas选择以实现如图2所示(点击按钮后?)
答案 0 :(得分:0)
没有简单的方法,因为墨水仅支持纯色笔画。
可能会更容易创建一个自定义画布paint on with an ImageBrush如果你想要创建一个完整的墨迹复制品,这是很多工作,但你可能并不是那么糟糕你只需要能画出一些线条。
我考虑过将图像放在墨迹下方,并在墨迹上用透明颜色绘画,但这不会使墨迹的背景透明。
答案 1 :(得分:0)
虽然这是一个旧线程,但我仍然想指出this sample at MSDN。
我已经使用NET 4.0 + VS 2010 + Windows 7 x64进行了检查,它可以正常工作(如此image)。它似乎完全符合OP的要求。
它使用DynamicRenderer(msdn.microsoft.com/en-us/library/vstudio/system.windows.input.stylusplugins.dynamicrenderer(v=vs.100).aspx)来实现这一点,就在InkCanvas中没有额外的处理。
您还可以使用InkCanvas进行一些其他自定义(msdn.microsoft.com/en-us/library/vstudio/system.windows.controls.inkcanvas(v=vs.100).aspx):
问候,哈坎。