C# Win2d CanvasDrawingSession.Blend的使用

C# Win2d CanvasDrawingSession.Blend的使用,c#,uwp,win2d,C#,Uwp,Win2d,在我的项目中,我想在Win2D中制作一种特殊的绘图。为此,我需要一个用新几何体覆盖位图中几何体的过程,而不会丢失以前几何体的完整信息。CanvasBlend.Min函数似乎是一个不错的选择 我尝试了以下代码,但min函数没有按预期工作。它不会将位图的几何图形与新几何图形进行比较 using (CanvasDrawingSession ds = offscreen.CreateDrawingSession()) { Rect myRect2 = new Re

在我的项目中,我想在Win2D中制作一种特殊的绘图。为此,我需要一个用新几何体覆盖位图中几何体的过程,而不会丢失以前几何体的完整信息。CanvasBlend.Min函数似乎是一个不错的选择

我尝试了以下代码,但min函数没有按预期工作。它不会将位图的几何图形与新几何图形进行比较

using (CanvasDrawingSession ds = offscreen.CreateDrawingSession())
        {
            Rect myRect2 = new Rect();
            myRect2.X = 0;
            myRect2.Y = 0;
            myRect2.Width = 400;
            myRect2.Height = 500;

            ds.FillRectangle(myRect2, Windows.UI.Color.FromArgb(150, 255, 255, 255));

            ds.Blend = CanvasBlend.Min;

            Rect myRect1 = new Rect();
            myRect1.X = 0;
            myRect1.Y = 0;
            myRect1.Width = 500;
            myRect1.Height = 200;
            //this color should overwrite the color before, because it is the minimum
            ds.FillRectangle(myRect1, Windows.UI.Color.FromArgb(50, 255, 255, 255));
        }

参考的备注,您需要将
ClearColor
属性设置为
白色
,并在
画布控件
中将
不透明度
属性设置为“0.5”或“1”(如果您的
屏幕外
来自
画布控件
)查看
canvaslend.Min
的效果。默认颜色为
画布控件中的
透明


请注意,
Windows.UI.Color.FromArgb(150,255,255,255)
Windows.UI.Color.FromArgb(50,255,255,255)
都是白色,您需要将它们更改为其他颜色,例如
Windows.UI.Color.FromArgb(255,255,0,0)
Windows.UI.Color.FromArgb(255,0,0,255)
Windows.UI.Color.FromArgb()的第一个参数表示不透明度。

谢谢,我以为数字的方向不对。我的问题是,我的背景是黑色的。是否有可能反转CanvasBlend.Min函数?能否请您告诉我“反转CanvasBlend.Min函数”是什么意思?抱歉,让您感到困惑。我需要一个函数,它需要源像素和目标像素的差异。(因此,Add函数的位置)。