Ilia..
I may have an alternative. I'm using DrawingImage resources based on geometrygroups or pathgeometries.
The rectangle acts as a clipping mask and is needed for positioning.. the drawingimage will then position, scale and size correctly.
In sample the imagesource is defined in button xaml, probably better to do so in the command binding definition.
I'm using Expression with xaml resource dictionary layout... and then copy the "geometry" strings into my geometry group template.. you'll have to remove the F0/F1 (fill rule directive) from the string... bit of a bother but it's getting routine :-)
HTH, Jurgen
<GeometryGroup x:Key="geo_pane_horz">
<GeometryGroup.Children>
<PathGeometry Figures="M 3,8L 14, 8C 14.5, 8 15, 7.5 15, 7L 15, 2C 15,1.5 14.5,1 14,1L 3,1C 2.5,1 2,1.5 2, 2L 2, 7C 2, 7.5 2.5, 8 3, 8 Z M 3, 7L 14, 7L 14, 3L 3, 3L 3, 7 Z " />
<PathGeometry Figures="M 3,16L 14,16C 14.5,16 15,15.5 15,15L 15,10C 15,9.5 14.5,9 14,9L 3,9C 2.5,9 2,9.5 2,10L 2,15C 2,15.5 2.5,16 3,16 Z M 3,15L 14,15L 14,11L 3,11L 3,15 Z " />
</GeometryGroup.Children>
</GeometryGroup>
<RectangleGeometry x:Key="rect16"
Rect="0,0,16,16" />
<Pen x:Key="pen0"
Thickness="0"
Brush="Transparent" />
<DrawingImage x:Key="drw_pane_horz">
<DrawingImage.Drawing>
<DrawingGroup>
<GeometryDrawing Geometry="{StaticResource rect16}"
Pen="{StaticResource pen0}" />
<GeometryDrawing Geometry="{StaticResource geo_pane_horz}"
Brush="DarkSlateGray" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
<ribbon:Button Name="btnHorz" Command="my:Commands.ArrangeWindowsHorizontal"
ImageSourceSmall="{StaticResource drw_pane_horz}" />