PushOpacityMask bad behavior
- Dominant language
- C#
- Stars
- 7.7k
- Forks
- 1.3k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 61
Description
### Description
I am try to make a Simth chat process, which using WPF: `public class test1 : Control {`

I have to draw all arcs in the circle. So I need a mask

When I draw the mask,
```c#
var mask_dg = new DrawingGroup();
mask_dg.Children.Add(new GeometryDrawing(Brushes.Black, base_pen, new EllipseGeometry(new Point(0, 0), 1, 1)));
mask_dg.Children.Add(new GeometryDrawing(Brushes.Transparent, base_pen, new EllipseGeometry(new Point(0, 0), 1000, 1000)));
drawingContext.DrawDrawing(mask_dg);
//drawingContext.PushOpacityMask(new DrawingBrush(mask_dg));
```
It work well, the black circle is masked.
than use PushOpacityMask():
```c#
drawingContext.PushOpacityMask(new DrawingBrush(mask_dg));
```
Something little here.:

Is the PushOpacityMask do not using the transform? let's try:
```c#
var mask_dg = new DrawingGroup();
mask_dg.Children.Add(new GeometryDrawing(Brushes.Black, base_pen, new EllipseGeometry(new Point(0, 0), 100, 100)));//change to 100 from 1
mask_dg.Children.Add(new GeometryDrawing(Brushes.Transparent, base_pen, new EllipseGeometry(new Point(0, 0), 1000, 1000)));
//drawingContext.DrawDrawing(mask_dg);
drawingContext.PushOpacityMask(new DrawingBrush(mask_dg));
foreach (var r in er_circle_r_table) {
drawingContext.DrawGeometry(Brushes.Transparent, R_pen, new EllipseGeometry(new Point(r / (1 + r), 0), 1 / (1 + r), 1 / (1 + r)));
drawingContext.DrawGeometry(Brushes.Transparent, G_pen, new EllipseGeometry(new Point(-r / (1 + r), 0), 1 / (1 + r), 1 / (1 + r)));
}
```

WHY????????

Mask should big than all draws.
```c#
mask_dg.Children.Add(new GeometryDrawing(Brushes.Transparent, base_pen, new EllipseGeometry(new Point(0, 0), 10000, 10000)));
```
If any draw out of mask, mask disabled.

### Reproduction Steps
Chould you check my publish:
https://github.com/lee8871/SimthChat
### Expected behavior
May fix mask, may mask using same transform in DrawingContext.
### Actual behavior

### Regression?
_No response_
### Known Workarounds
_No response_
### Impact
_No response_
### Configuration
Debug
AnyCPU
v4.8
### Other information
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.