2017-02-01 48 views
0

我试图擦除inkcanvas中单击绘制的线条。 我的要求是,如果我在给定的区域上绘制一条线或任何图案,它将删除所有绘制在一个点击线,并再次绘制任何东西,然后单击'擦除'按钮将清除当前屏幕上绘制的所有线。试图擦除inkcanvas中单击一条线绘制

的XAML

<Grid x:Name="Bg_BigRect" Background="White" 
     Width="310" Height="440" 
     RelativePanel.Below="Bg_Rect" 
     Margin="24,10,0,0"> 
    <Image x:Name="Trans_Tex" Source="WorkBook/T0.png"        
      Margin="-10,0,0,20" 
      Width="310" Height="370"/> 
     <InkCanvas x:Name="ink"/> 
</Grid> 

C#代码

public WorkBook() 
{ 
    this.InitializeComponent(); 
    ink.InkPresenter.InputDeviceTypes = CoreInputDeviceTypes.Mouse | CoreInputDeviceTypes.Touch;  

    // Set initial ink stroke attributes. 
    InkDrawingAttributes drawingAttributes = new InkDrawingAttributes(); 
    drawingAttributes.Color = Windows.UI.Colors.Black; 
    drawingAttributes.IgnorePressure = false; 
    drawingAttributes.FitToCurve = true; 
    ink.InkPresenter.UpdateDefaultDrawingAttributes(drawingAttributes); 
} 

private void W_ClearTap(object sender, TappedRoutedEventArgs e) 
{ 
    this.ink.InkPresenter.InputProcessingConfiguration.Mode = InkInputProcessingMode.Erasing; 
} 

参考图像

Screenshot of application

+1

'ink.InkPresenter.Strokes.Clear()'。顺便说一句。这是一个奇怪的方式来绘制一个'A' –

+0

@ManfredRadlwimmer我试过了,但它给出了错误“InkPresenter”不包含“Strokes”的定义。你能举例说明如何实现它。 – anuj

+0

这很奇怪,它应该有一个[Strokes Property](https://msdn.microsoft.com/en-us/library/system.windows.controls.inkpresenter.strokes(v = vs.110).aspx) –

回答