Convert the IsOpenChanged event to a RoutedEvent

Fixes #1437