Multiple XamlRoots
improvements
#8978
Labels
difficulty/challenging 🤯
Categorizes an issue for which the difficulty level is reachable with internals understanding
epic
kind/enhancement
New feature or request
What would you like to be added:
InvalidateParentMeasureDirtyPath
andInvalidateParentArrangeDirtyPath
should useVisualTree.GetParent
as fallback? feat: Enable multipleXamlRoots
#8612 (comment)XamlRoots
(see TODO inWpfDragDropExtension.cs
- but will require changes on all platforms), choose proper XamlRoot inDropUITarget.cs
(related fix: Fix DragDrop not working properly with multi window #16583)IXamlMetadataProvider
andIXamlMetadataContainer
members toUno.UI.XamlHost.XamlApplication
class.ICoreWindowExtension
in favor of just usingIPointerExtension
InvalidateRender
- ensure invalidation is performed only for dirty rectsXamlRoot
to support multiple windows ([windows] in XamlRoot.cs)MetadataProviderDiscovery.MetadataProviderFactory
UnoXamlHostBase.Layout.cs
IsXamlContentLoaded
parent is not set the same as in UWPUpdateUnoSize()
method inUnoXamlHostBase.Layout.cs
UnoTypeFectory.cs
CreateXamlContentByType
XamlRoot
setter should work ifXamlRoot
property is stillnull
(UIElement.cs
XamlRoot
property)DiscoverMetadataProviders
was yield breaking after finding aApplication
type, why? [Question] Why break afterApplication
type found? CommunityToolkit/Microsoft.Toolkit.Win32#347Arrange
andMeasure
invalidation code to useXamlRoot
on all targets (e.g. #ifs in UIElement.Layout.netstd.cs)InvalidateRender
withXamlRoot
(currently happening on Window.Activated for CoreWindow roots)FrameIdProvider
should be in sync with actual frame rendering (should increase on each render)HostPointerHandler
in WPF runtimeXamlRoots
#8612 (comment)CoreWindowContentRootSet
and find a better way to notify about assignedXamlRoot
(for both CoreWindow and XamlIslands)XamlRoot
andGetOrCreateXamlRoot
makes sense inContentRoot
andVisualTree
UnoXamlHostBase.host.cs
InitializeHost
- they are required to properly initialize the application for islands use cases, but can't stay like this when we support multiple windows.CoreWindow
is tricky and messy - https://github.com/unoplatform/uno/pull/8612/commits/ee8df80b3a92d916e0e8b7e36b1ba9d32e7548db\XamlRoot.Content
currently supports only one window and its content for islands may not match UWPVisualTree.GetPopupRootForElement
code to supportXamlRoot
When_PlacementTarget_Binding
when popups will be fully supportedUpdated
ApplicationView
events on Window close inUnoGtkWindow
andUnoWpfWindow
AppWindow
and add this to samples appCoreWindow
windows in WinUI branch (Window.cs constructor)Dispatcher.Main
andDispatcherQueue.Main
Window.CurrentSafe
reference inBackdropMaterial.cs
based on updated WinUI sourcesCoreWindow
in FrameBuffer Uno.Templates Program.csWindow
should be changed toTypedEventHandlers
on MUX source treeCoreWindowActivationState
in MUX source tree in favor ofWindowActivationState
EnteredBackground
andLeavingBackground
is raised in a platform agnostic way and respects multiwindow environmentCoreWindow
should not useWindowChrome
(seeContentManager.cs
)ScheduleInvalidateMeasureOrArrange(invalidateMeasure: true);
for WASM inXamlRoot.crossruntime.cs
or we need to keep the WASM-specific implementation__IOS__
specific workaround inContentManager.cs
(resetting theFrame
after content changes)XamlRoot.Size
andBounds
should forward toVisualTree.Size
andVisualTree.Bounds
and they should have aligned meaning Properly align window bounds and visible bounds readings #13975XamlRoot
support for drag and drop #13982Window.CurrentSafe
inFocusManager.wasm
GtkHost.InitialWindow
andNativeWindowShown
WpfHost.InitialWindow
andNativeWindowShown
Window_SetBackground
sample should apply to actual displayed Window not Window.CurrentGtkKeyboardInputSource.cs
WpfDisplayInformationExtension
should get DPI per windowGiven_Flyout
testsWhy is this needed:
For which Platform:
Anything else we need to know?
The text was updated successfully, but these errors were encountered: