Thanks for the response - I should have been more specific. Is there any way to distinguish between the causes of the AxisRangeChangedEvent? For example, I can programatically set the range of an axis, or it could be changed by a user interactively, and in both cases the AxisRangeChangedEvent will get fired and it would be nice if I could determine the cause of the AxisRangeChangedEvent (similar to how you can determine the cause of a cursor move by checking the .Action property of the argument passed into the event handler).