c# - GraphicsPath.AddPolygon not rendering properly -


basically have form , trying "dim" areas of draw focus part of form. i'm using form no border , 50% opacity, aligned actual form. area trying mask dark gray area, roughly, pictured:

enter image description here

to "u"-shaped form, i'm using graphicspath addpolygon, calculating points of each vertex:

var p = new graphicspath(); var origin = new point(top, left); var maxextentpt = new point(origin.x + width, origin.y + height); point[] points = {     origin,      new point(origin.x + leftpanel.width, origin.y),     new point(origin.x + leftpanel.width, maxextentpt.y - bottompanel.height),     new point(maxextentpt.x - rightpanel.width, maxextentpt.y- bottompanel.height),     new point(maxextentpt.x - rightpanel.width, origin.y),     new point(maxextentpt.x, origin.y),     maxextentpt,     new point(origin.x, maxextentpt.y),     origin }; p.addpolygon(points); overlayform.region = new region(p); overlayform.location = pointtoscreen(point.empty); 

the 3 panels in code masking, using dimensions calculate points. instead of getting expected result, mask looks this, size changing resize main form (i recalculate region on move , resize):

enter image description here

is there limitation of graphicspath.addpolygon i'm not aware of? double-checked (quadruple-checked, really) results of calculations, including taking coordinates each point , plugging them ipe see if shape correct... was. not in program!

edit: here values of each point, when hit breakpoint @ p.addpolygon(points); i'm starting in upper left-hand corner , going around clockwise:

enter image description here

looks points wrong after all.

everything ought in coordinates of clientrectangle, so

origin should not new point(top, left) location of form. should point.empty or (0,0). or use leftpanel.location.

and

maxextentpt = new point(origin.x + width, origin.y + height); 

should read:

var maxextentpt = new point(origin.x + clientsize.width, origin.y + clientsize.height); 

(the difference size of border+title..)

let me know if works better!


Comments

Popular posts from this blog

javascript - gulp-nodemon - nodejs restart after file change - Error: listen EADDRINUSE events.js:85 -

Fatal Python error: Py_Initialize: unable to load the file system codec. ImportError: No module named 'encodings' -

javascript - oscilloscope of speaker input stops rendering after a few seconds -