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

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

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

iphone - How would you achieve a LED Scrolling effect? -