我在InkCanvas上绘制了一些墨迹,现在我想改变笔的颜色。我可以使用CopyDefaultDrawingAttributes和UpdateDefaultDrawingAttributes更改我绘制的任何其他笔划的颜色,并且工作正常。但是,如何更改已存在的笔画颜色StrokeContainer?我试过了:
foreach (InkStroke stroke in inkCanvas.InkPresenter.StrokeContainer.GetStrokes())
{
stroke.DrawingAttributes.Color = strokeColour;
};
此代码执行时没有异常,但stroke.DrawingAttributes.Color仍显示以前的颜色。
有什么想法吗?
...谢谢
罗伯特
答案 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。