c# - How do draw FormattedText (if not in the onRender method) -


i draw ellipse , add them grid.

then i'd add formattedtext each ellipse. getting rectanglebounds of ellipse.

but following example:

http://msdn.microsoft.com/en-us/library/bb613560.aspx#formattedtext_object

i need drawingcontext draw text. if don't wantto override onrender, how can drawingcontext?

you can use drawinggroup instead. has open method returns drawingcontext , can use construct drawing.

you'll need arrange drawing appear in ui somehow. easiest way wrap in drawingbrush , use paint existing element in ui. example, if you've got ellipse called myellipse, set fill property drawingbrush based on drawinggroup contains single bit of formattedtext:

var drawing = new drawinggroup(); using (var context = drawing.open()) {     var text = new formattedtext("this text",         cultureinfo.currentculture,         flowdirection.lefttoright,         new typeface("calibri"),         30,         brushes.green);     context.drawtext(text, new point(0, 0)); }  var db = new drawingbrush(drawing); db.stretch = stretch.none; myellipse.fill = db; 

if you've filled ellipse else, have 2 choices. either add more content drawing - can make many calls context like. example, if add before call context.drawtext:

context.drawrectangle(brushes.cyan, null, new rect(0, 0, 300, 100)); 

i'll cyan background behind text. (you'd need adjust coordinates in these examples suit layout, of course.)

but it's simpler add element host drawing, rather trying piggy-back element that's there else. put rectangle element positioned directly on ellipse, , use drawingbrush such fill rectangle. rectangle won't rectangular, because drawingbrush doesn't paint in whole area. effect same if you'd layered textblock on ellipse.


Comments

Popular posts from this blog

Add email recipient to all new Trac tickets -

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -