If there's a `Command` binding for a `MenuItem` it will now swallow the `Click` event, meaning that the menu won't get closed. Listen for handled events too.
Use `CurrentCulture` instead of `CurrentUICulture` in converters etc. `CurrentUICulture` should be used for translations, `CurrentCulture` should be used for things like numbers, dates etc.
It's a bad idea - if you put say a `3` into a `BindingNotification`, that `int` will get boxed and then put into a `WeakReference`, which means that the `3` can get GC'd. That's not a desireable behavior!
Controls not attached to the visual tree should not notify the `LayoutManager` that they have had their layout invalidated. Similarly when added to the visual tree their parents and themselves should have their layout invalidated.
Previously a button click was carried out when `:pointerover` was set, but because the button captures mouse input on mouse down, this is always true while the mouse is held. Check that the pointer was released within the bounds of the control.
Fixes#938
`ILockedFrameBuffer.Dpi` was a `Size` but it would make more sense as a `Vector` because `Size * Vector` produces a `Size` whereas a `Size * Size` would produce a `Size3D` if that type existed.
- Showing a window was causing it to be added to the collection twice because `Show()` called `IsVisible = true` which called `Show()`
- The window wasn't getting removed when the `PlatformImpl` signalled it was closed
This will allow for easy use of Dependency Injection with Microsoft.Extensions.DependencyInjection the mainWindow can resolve any constructor objects it may have.