0

我在我的解决方案中使用Inkcanvas。所以我想在用户确认后删除,像这样......

XAML:

<InkCanvas Grid.RowSpan="3" Name="ink"  StrokeErasing="ink_StrokeErasing" />

C#:

private void ink_StrokeErasing(object sender, InkCanvasStrokeErasingEventArgs e)
{
    if (MessageBox.Show("Delete this stroke?", "", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
    {
        e.Cancel = true;
    }
}

之后,我可以看到消息框两次,:( 这不知道这是怎么发生的。请让我知道这一点。

4

2 回答 2

1

我试图重现此错误并使用了 ink.EditingMode =InkCanvasEditingMode.EraseByStroke;

这只会触发一次消息框。

当我ink.EditingMode = InkCanvasEditingMode.Select;在选择笔画后使用并按删除时,不会显示消息框。

然后我使用ink.EditingMode = InkCanvasEditingMode.EraseByPoint;and 导致消息框出现多次,因为它是针对您要删除的笔画的每个单点触发的。

于 2011-04-19T07:45:28.473 回答
0

谢谢情绪。实际上我使用了“InkCanvasEditingMode.EraseByStroke”,我必须使用这个值。:(无论如何我想问题是鼠标焦点。我改变了我的代码......

private void ink_StrokeErasing(object sender, InkCanvasStrokeErasingEventArgs e)
{
    if (Mouse.LeftButton == MouseButtonState.Released) { e.Cancel = true; return; }

    if (MessageBox.Show("Delete this stroke?", "", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
    {
        e.Cancel = true;
    }
}

它工作正常:) 我怀疑这是一个错误。

于 2011-04-20T00:53:41.317 回答