0

我有标准 Inkcanvas 的应用程序。标准应用程序 如图 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 画笔,如下所示: 图 2。我想使用 Inkcanvas 和简单的“背景”图像(jpg、png 或其他)进行绘画。有没有简单的制作方法?你能举个例子吗?

在我的应用程序中,我想在标准 Inkcanvas 上绘画,然后转换 Inkcanvas 选择以实现类似图 2 的效果。(单击按钮后?)

4

2 回答 2

0

没有简单的方法,因为墨水只支持纯色的笔触。

使用 ImageBrush创建自定义画布可能会更容易如果您想创建 inkcanvas 的完整副本,这需要做很多工作,但您只需要能够做到这一点可能还不错画一些线。

我想过在墨水画布下方放置一个图像并在墨水画布上使用透明颜色进行绘画,但这不会使墨水画布的背景透明。

于 2013-05-11T21:36:50.023 回答
0

虽然这是一个旧线程,但我仍然想在 MSDN 上指出这个示例

我已经用 NET 4.0 + VS 2010 + Windows 7 x64 对其进行了检查,它工作正常(如图所示。它似乎完全符合 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):

  • 墨水处理 (msdn.microsoft.com/en-us/library/vstudio/ms752076(v=vs.100).aspx)
  • 自定义渲染 (msdn.microsoft.com/en-us/library/vstudio/ms747347(v=vs.100).aspx)
  • 其他示例 (msdn.microsoft.com/en-us/library/vstudio/aa972145(v=vs.90).aspx)。

问候,哈坎。

于 2014-09-12T16:44:40.990 回答