I’m using the Microsoft.Windows.Controls.Ribbon in my WPF application, and it is stretching the RibbonCommand image larger than it is supposed to be. The image is inserted as follows:
<r:RibbonApplicationMenu.Command>
<r:RibbonCommand LargeImageSource="/Resources/Images/FSRibbon.png" />
</r:RibbonApplicationMenu.Command>
Here is FSRibbon.png: 
It is a 32×28 32 bit png. I have also tried exactly 32 x 32, as well as a 48 x 48 with empty padding around it. No matter what I do, the ribbon control is displayed as this:

As you can see, it’s getting blown up as though it’s being stretched to a 48×48 canvas. But if I provide a 48×48 image, it blows that up just as much. The RibbonCommand doesn’t provide any way to control the stretch of the image, so there’s nothing like <Image/> object’s Stretch="None" property for me to set. What is going on?
Attempts
I’ve tried this:

This question tipped me off to the fact that WPF isn’t so magical at adapting to different image resolutions (DPI / pixels per inch, etc). The aforementioned question said that the Windows standard is 96 DPI, which I guessed was a synonym for pixels/in. The image I uploaded above happens to be 72 pixels/in.
I tried converting it to 96 using ‘scale image’ in GIMP (open source image editor), and magically, it started being treated properly.
As if us humble programmers are expected to know this junk :p