I just dug up a whole bunch of custom panels that I wrote, complete with a nifty demo application I built way back in 2010 (when WPF was all the rage). It’s pretty fun stuff actually. I posted all the code on GitHub here.

Diagonal Panel

This one is pretty basic, it’s essentially a slightly modified version of Stack Panel. I didn’t implement any properties to customize rendering as I thought it was pretty useless in terms of practical purposes. However, it is a good one to look at if you are curious about how the code works.

Alt

Circle Panel

I provide a few properties that allow you to customize the rendering.

Radius: Changes with circle’s radius (in pixels) Item Rotate: Degrees to rotate each item Allow Item Rotate: turns on / off item rotation

Alt

Here is what Item Rotation turned on looks like:

Alt

Sine Panel

Start Angle: Changes the offset point of the sine function Amplitude: Changes the height of the sine curve Frequency: Changes how many curves there are within one length Length: Changes how many degrees to include in the length Item Rotation: Degrees to rotate an item Allow Item Rotation: turns on / off item rotation

Alt

Item Rotation creates an almost double helix type affect:

Alt

This panel is very similar to the circle panel, in fact, when I wrote it I implemented the Circle Panel first and built from there.

Radius X: Controls the width of the ellipse Radius Y: Controls the height of the ellipse Scalar: Controls how quickly items scale down in size

Alt

Fermat’s Spiral Panel

With this panel I implemented using Fermat’s Spiral formula.

  • Angle: Theta
  • Scalar: Radius from the center

Alt

You can play around with the angle to change the shape that Fermat’s spiral takes pretty drastically.

I’ve included a few notable values for theta that produced distinctive renderings:

Name Theta
Golden Angle 137.5
Wave 72.1
Snake 78.463
Uniform Lines 75.9218
Comma 69.3
3 Way Curved 60.67
3 Way 67.027
Star Fish 118.111
Archimedean 119.7