Sunday, 15 March 2015

c# - Drawingvisual use Pen from a Pen property -



c# - Drawingvisual use Pen from a Pen property -

my main aim update drawingvisuals thicknesses when zoom on canvas. takes long time update each drawingvisual if there much drawing visuals (like 100.000 lines) in canvas. decided have pen property in class create dravingvisuals pen. pen thickness property in binding zoom ratio of canvas. way zooming works whell, fast plenty , thicknesses of draving visuals beingness updated correctly. problem on point creating 100000 lines takes much time 4 minutes.

public pen pen { get; set; } private void test() { point lastpoint=new point(0,0); double lastangle=0; (int = 1; <100000; i++) { line temp = new line(lastpoint, lastangle, 20); _linelist.add(temp); lastpoint = temp.point2; lastangle = lastangle > 360 ? 0 : lastangle + 30; } foreach (line l in _linelist) { visualadd(l.geometri(), l.cnid, pen); } } public void visualadd(geometry g, int id, pen p) { drawingvisual c = drawingvisualcreate(g, id, p); _children.add(drawingvisualolustur(g,id,p)); } private drawingvisual drawingvisualcreate(geometry g, int id,pen p) { drawingvisual drawingvisual = new drawingvisual(); drawingcontext drawingcontext = drawingvisual.renderopen(); drawingcontext.drawgeometry(null, p, g); drawingcontext.close(); drawingvisual.id = id; homecoming drawingvisual; }

if create drawing visual below create 100000 lines takes 2 seconds. explain update thickness while zooming going big problem.

public void visualadd(geometry g, int id) { drawingvisual c = drawingvisualcreate(g, id); _children.add(drawingvisualolustur(g,id,p)); } private drawingvisual drawingvisualcreate(geometry g, int id) { drawingvisual drawingvisual = new drawingvisual(); drawingcontext drawingcontext = drawingvisual.renderopen(); drawingcontext.drawgeometry(null, new pen(brushes.black,1), g); drawingcontext.close(); drawingvisual.id = id; homecoming drawingvisual; }

i dont understand why slow when creating pen created property.

c# wpf wpf-controls drawingvisual

No comments:

Post a Comment