如何在Windows通用中更改已绘制的InkStrokes的颜色

时间:2016-07-05 00:40:55

标签: windows uwp inkcanvas pen

我在InkCanvas上绘制了一些墨迹,现在我想改变笔的颜色。我可以使用CopyDefaultDrawingAttributes和UpdateDefaultDrawingAttributes更改我绘制的任何其他笔划的颜色,并且工作正常。但是,如何更改已存在的笔画颜色StrokeContainer?我试过了:

        foreach (InkStroke stroke in inkCanvas.InkPresenter.StrokeContainer.GetStrokes())
        {
            stroke.DrawingAttributes.Color = strokeColour;
        };

此代码执行时没有异常,但stroke.DrawingAttributes.Color仍显示以前的颜色。

有什么想法吗?

...谢谢

罗伯特

1 个答案:

答案 0 :(得分:5)

  

您无法直接设置笔触的DrawingAttributes属性。您必须创建笔划的InkDrawingAttributes的副本,为该InkDrawingAttributes对象设置所需的值,然后将新的InkDrawingAttributes分配给笔划的DrawingAttributes。

所以你可以像这样编码:

foreach (InkStroke stroke in inkCanvas.InkPresenter.StrokeContainer.GetStrokes())
{
    //stroke.DrawingAttributes.Color = Windows.UI.Colors.Yellow;
    InkDrawingAttributes drawingAttributes = new InkDrawingAttributes();
    drawingAttributes.Color = Windows.UI.Colors.Yellow;
    stroke.DrawingAttributes = drawingAttributes;
}

有关详细信息,请参阅InkStroke.DrawingAttributes | drawingAttributes property