/// <summary> /// 重绘方法 /// </summary> /// <param name="clipRect">裁剪区域</param> public void onPaint(FCRect clipRect) { lock (this) { if (m_container != null) { FCSize displaySize = m_native.DisplaySize; double scaleFactorX = 1, scaleFactorY = 1; FCSize clientSize = getClientSize(); if (m_native.AllowScaleSize) { if (clientSize.cx > 0 && clientSize.cy > 0) { FCSize scaleSize = m_native.ScaleSize; scaleFactorX = (double)(clientSize.cx) / scaleSize.cx; scaleFactorY = (double)(clientSize.cy) / scaleSize.cy; } } Graphics g = m_container.CreateGraphics(); m_native.Paint.setScaleFactor(scaleFactorX, scaleFactorY); m_native.Paint.beginPaint(g.GetHdc(), new FCRect(0, 0, clientSize.cx, clientSize.cy), clipRect); m_native.onPaint(clipRect); m_native.Paint.endPaint(); g.Dispose(); } } }