2013-05-11 54 views
0

我有应用程序与标准Inkcanvas。标准应用看起来像 Figure 1.和所有的应用程序代码(XAML)是在这里:wpf inkcanvas刷式

<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刷图像像这样(图片面膜?): Figure 2。我想使用Inkcanvas和简单的“背景”图像 (JPG,PNG或其他)。有没有简单的方法来做到这一点?你能举一个例子吗?

在我的应用我要画标准Inkcanvas,之后转换Inkcanvas选择来实现这样的图2(点击按钮后?)

回答

0

有没有简单的方法,因为油墨只支持招具有纯色。

创建一个自定义画布可能会更容易paint on with an ImageBrush如果要创建inkcanvas的完整副本,但这可能并不是那么糟糕,你只需要能够画一些线。

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

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)做:

  • 墨水处理(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)。

问候,哈坎。