NextDouble
генерирует случайные числа от 0 до 1.
private static Random random = new Random();
public static double GetRandomDouble_BetweenMinusHalfPlusHalf()
{
return random.NextDouble() - 0.5;
}
О. Он. Идея состоит в том, чтобы создать OpacityMask из Вашего использования дыр DrawingBrush и затем продвинуть его на контексте рисунка прежде, чем привлечь PathGeometry. Что-то вроде этого.
RectangleGeometry r = new RectangleGeometry(graphVisual.Bounds);
GeometryDrawing dr = new GeometryDrawing(Brushes.Black, null, Geometry.Combine(r, bulletHoles, GeometryCombineMode.Exclude, null));
DrawingBrush br = new DrawingBrush(dr);
drawingContext.PushOpacityMask(br);
drawingContext.DrawGeometry(null, new Pen(Brushes.Green, 2), graphVisual);
drawingContext.Pop();