2013-05-11 57 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)。

問候,哈坎。