首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InkCanvas橡皮

InkCanvas橡皮
EN

Stack Overflow用户
提问于 2011-03-30 05:37:03
回答 1查看 4.8K关注 0票数 0

我有InkCanvas的草图;我想改变橡皮擦的大小,所以我写了:

代码语言:javascript
复制
Private Sub Sketchpad_KeyDown(sender As System.Object, e As System.Windows.Input.KeyEventArgs) Handles Sketchpad.KeyDown

If e.Key = Key.OemMinus Then

' Decrease size of Eraser to 5*5 

Sketchpad.EraserShape = New RectangleStylusShape(5, 5)

End If

If e.Key = Key.OemPlus Then

' Increase size of Eraser to 50*50 

Sketchpad.EraserShape = New RectangleStylusShape(50, 50)

End If

If e.Key = Key.I Then
' Change editing mode to Ink
Sketchpad.EditingMode = InkCanvasEditingMode.Ink

End If

If e.Key = Key.E Then
' Change editing mode to Eraser
Sketchpad.EditingMode = InkCanvasEditingMode.EraseByPoint

End If

End Sub

试试这个:

  1. 按e键选择橡皮擦,橡皮擦stylusTip将显示为矩形
  2. 按+符号以增加大小,您将不会看到任何更改。为什么?
  3. 现在按i键改变编辑模式,就会出现墨迹提示。
  4. 再次按e键重新切换到橡皮擦。你会看到橡皮擦的形状已经改变了。

为什么不按下+符号呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-19 08:12:12

来自帮助

“如果您更改了EraserShape,在InkCanvas上呈现的光标直到下一个EditingMode更改后才会更新。”

我测试了以下代码,它运行得很好:

代码语言:javascript
复制
if (e.Key == Key.OemMinus)
{
    ink.EraserShape = new RectangleStylusShape(5, 5);
    var editMode = ink.EditingMode;
    ink.EditingMode = InkCanvasEditingMode.None;
    ink.EditingMode = editMode;
}
if (e.Key == Key.OemPlus)
{
    ink.EraserShape = new RectangleStylusShape(50, 50);
    var editMode = ink.EditingMode;
    ink.EditingMode = InkCanvasEditingMode.None;
    ink.EditingMode = editMode;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5482298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档