Q:

Custom cursor positioning in WPF

I am trying to change the position of a custom cursor. The image of the custom cursor always appears lower and to the right of where I would want it, specially if I have it appear in the top left of my control - where I want the icon to be displayed in the upper left area. 
How do I change the draw position in WPF of a custom cursor.
I currently only load the Cursor in xaml, and am using it in an Adorner. Ideally it would be a neat solution to change the position of the cursor depending on if in the upper left/upper right/lower left/lower right corners of the control.
Related to this, it would also be good to be able to rotate the cursor at runtime too, as the control is rotated.

A:

The hotspot, or the 'click-point' for a cursor is built into the cursor file itself, and this is what determines where the rest of the cursor is drawn in relation to the part you click with.
Typically, in a .cur file, the location of the hotspot is stored in bytes 0a and 0c.  The standard system pointer will have values of 00 and 00 which places the hotspot in the upper-left corner.
I have created 'cross-hair' cursors in the past with the hotspot directly in the center, so 0a and 0c have values of 10 and 10 (16 and 16 in decimal, since I was making a 32x32 px cursor).
In order to simulate the rotation of the cursor, you will actually need different .cur files with different hotspots that you can swap out in your code as the situation demands.
Most cursor creation tools should allow you to specify the hotspot when creating the file.  I have used IcoFX in the past, which makes it very easy to place the hotspot (2 clicks).

