[英]Change InkDrawingAttributes Opacity for Pen brush
我使用颜色选择器用笔绘图,但使用此代码我无法更改笔颜色的不透明度:
InkDrawingAttributes inkDrawingAttributes = InkCanvas.InkPresenter.CopyDefaultDrawingAttributes(); inkDrawingAttributes.Color = ColorPenSelected; InkCanvas.InkPresenter.UpdateDefaultDrawingAttributes(inkDrawingAttributes);
但是,使用 InkCanvas.InkPresenter.CopyDefaultDrawingAttributes() inkDrawingAttributes.PencilProperties 是 null,我无法更改不透明度。 不允许更改不透明度。
我可以用这段代码改变不透明度:
InkDrawingAttributes inkDrawingAttributes = InkDrawingAttributes.CreateForPencil(); inkDrawingAttributes.Color = ColorPenSelected; inkDrawingAttributes.PencilProperties.Opacity = (double)ColorPenSelected.A * 5 / 255; InkCanvas.InkPresenter.UpdateDefaultDrawingAttributes(inkDrawingAttributes);
在 CreateForPencil() 中用作铅笔。
现在,我可以更改不透明度。 然而,与第一张图像相比,画笔纹理不同,即使使用 100% 的不透明度。 线上有很多点,而不是一条独特的线:
那么,如何更改钢笔画笔的不透明度并保持与第一张图像相同的纹理? 有一条连续的线,没有第二张图片中的点。
我最初认为您可以将inkDrawingAttributes.Color
设置为 ARGB 值,但由于以下原因这是不可能的。
Color 的值是一个 ARGB 值。 但是,透明度组件(A 或 alpha 通道)的值将被忽略,InkStroke 将以完全不透明的方式呈现。
恐怕这似乎是不可能的。 您也许可以在之后将笔划渲染为半透明 - 但似乎您无法设置笔的不透明度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.