I’ve got a requirement to create several shapes based on a supplied size (all of them have the same height/width) and have their sizes be databound to that supplied property on the datacontext.
Most of the shapes are easy: Circle (ellipse with height/width bound), square (rectangle with height/width bound), diamond (same as square, then use a RotateTransform), + (two lines), X (two lines).
But I’m trying to figure out how to do it for a triangle and I can’t figure it out. It needs to be a filled object, so I can’t just do it with three lines.
But all of the ways i’ve seen to do it (w/ a Path or a Polygon) end up taking Point objects (StartPoint, EndPoint, etc). And you can’t bind to the X or Y values of the Point object.
Am I missing something? Or do I need to write my own custom shape or something?
Edit: To add a little bit of clarity… the type of triangle I’m creating doesn’t really matter. It can be equilateral or isosceles. I was targeting an isosceles, so that it would have a base with the databound width and the top “tip” of the triangle will be at the mid-point of the databound width and at Y=0. That was just an optimization for simplicity’s sake
The behavior class:
The XAML: