Is it too much of a stretch to use `PixelOffset` instead of this new `ScreenPosition` here?  I think both are the same, other than the name.  If `PixelOffset` seems inappropriate here, maybe we can come up with a name that works for both?