Hex PathGeometry заливка вместо рисования только границ

У меня есть потомок FrameworkElement с помощью следующих методов:

class HexVisual : FrameworkElement {

    /* ... */

    private PathGeometry GetHexGeometry(Hexagon Hexagon) {
        var geometry = default(PathGeometry);
        if(mHexGeometries.TryGetValue(Hexagon, out geometry)){
            return geometry;
        }

        PathFigure figure = new PathFigure();

        int i = 0;
        foreach (Point point in Hexagon.Polygon.Points) {
            if (i == 0) {
                figure.StartPoint = point;
                i++;
                continue;
            }

            figure.Segments.Add(new LineSegment(point, true));
        }

        geometry = new PathGeometry();
        geometry.Figures.Add(figure);
        geometry.FillRule = FillRule.Nonzero;

        return geometry;

    }

    private DrawingVisual CreateHexVisual() {
        DrawingVisual visual = new DrawingVisual();
        using (DrawingContext context = visual.RenderOpen()) {
            context.DrawGeometry(BorderBrush, BorderPen, mHexGeometry);
        }

        return visual;

    }
}

Когда я добавляю этот визуал в CanvasЯ получаю заполненный шестиугольник, а не только штрих (границу). Что я делаю не так, что вызывает заполнение геометрии?

1 ответ

Решение

Не уверен, что я действительно понимаю ваш вопрос, потому что вы не можете "добавить визуальные эффекты в Canvas", но, возможно, вы просто установили BorderBrush в null или же Transparentили заменить

context.DrawGeometry(BorderBrush, BorderPen, mHexGeometry);

с

context.DrawGeometry(null, BorderPen, mHexGeometry);
Другие вопросы по тегам