* refactor: Replace IsPopup with Enable*Layer properties on VisualLayerManager
- Remove IsPopup from VisualLayerManager, add granular Enable*Layer properties:
EnableAdornerLayer (default true), EnableOverlayLayer (default false),
EnablePopupOverlayLayer (internal, default false), EnableTextSelectorLayer (default false)
- Add PART_VisualLayerManager template part to TopLevel with protected property
- Window and EmbeddableControlRoot override OnApplyTemplate to enable
overlay, popup overlay, and text selector layers
- OverlayLayer is now wrapped in a Panel with a dedicated AdornerLayer sibling
- AdornerLayer.GetAdornerLayer checks for OverlayLayer's dedicated AdornerLayer
- Update all 8 XAML templates (both themes) to name PART_VisualLayerManager
and remove IsPopup="True" from PopupRoot/OverlayPopupHost
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add XML doc to VisualLayerManager
* Also search for AdornerLayer from TopLevel
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
* Make some overlay-related types/members internal
* Make sure that TopLevel is no longer the actual root of the visual tree. This is needed for our future changes.
* API diff
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fixed incorrect test
* Make automation to target FocusRoot
* api diff
* Hide WindowBase/EmbeddableControlRoot's parents from automation
* api diff
* Separate automation root and visual root for automation purposes
* Hide ChromeOverlayLayer from public API
* Synchronize WindowBase visibility to VisualRoot
* Hide WindowBase.ArrangeSetBounds
* api diff
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Define the base colours and brushes.
* import base / system colours.
* test textbox using alias for resource.
* add a fluent theme
* revert default theme
* revert original theme.
* restore default theme.
* remove old accents from fluent theme.
* rename namespaces, etc for new theme.
* make control catalog run again.
* undo textbox work.
* Revert "undo textbox work."
This reverts commit 477665c306.
* add missing fontweight.
* add the UWP base resources.
* Organise the Fluent themes to separate UWP base resources from Fluent resources.
* Add fluentBase dark and light overrides.
* Add xaml files to contain control resources until we get equivalent of ThemeDictionaries.
* undo textbox work.
Make the `ContentPresenter.Content` property depend on `ContentPresenter.ContentTemplate` because otherwise a temporary control will be created by the presenter using the default template between the time `Content` and `ContentTemplate` is bound.
However, because Portable.Xaml doesn't actually _support_ `DependsOnAttribute` yet, also move the bindings for `ContentTemplate` above `Content` in the default themes.
This works around #1271 although #1284 fixes the underlying cause of the leak - this is more to prevent unnecessary controls being created.
To the owner control's Content property. In WPF this is done
automatically, but from looking on the internet it seems that causes
some confusion so do it explicitly.
Fixes#499 .