Установка 'System.Drawing.Graphics.Transform' в Form.OnPaint приводит к ArgumentException - PullRequest
0 голосов
/ 19 марта 2019

System.ArgumentException: 'Параметр недействителен.'

Это первый раз, когда я пытался играть с Матрицей и преобразованиями.Anywho ...

protected override void OnPaint(PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            g.Transform = m_Vars.TransformMatrix;
            g.Clear (m_Vars.ClearColor);

            g.FillRectangle (m_Vars.FillBrush , m_Vars.DrawRectangle);
            g.DrawRectangle (m_Vars.LinePen , m_Vars.DrawRectangle);

            if (m_Vars.DrawCrossSection)
            {
                g.DrawLine (m_Vars.LinePen , m_Vars.DrawRectangle_TopMidpoint , m_Vars.DrawRectangle_BottomMidpoint);
                g.DrawLine (m_Vars.LinePen , m_Vars.DrawRectangle_LeftMidpoint , m_Vars.DrawRectangle_RightMidpoint);
            }

            Invalidate ();
        }

Исключение выдается в "g.Transform = m_Vars.TransformMatrix".Локальные данные показывают, что моя желаемая матрица -new- имеет 6 значений: 0,1, 0,0 0,0, 0,0 0,0, 0,0

. При создании этой матрицы заменяющего преобразования я использую «new Matrix ()», которая создает единичную матрицу.

Является ли проблема с моей новой матрицей или проблема с System.Drawing? Кроме того, возможно, существует какой-нибудь способ обойти?

...