Skip to content

fix: Add DragUI support for external drag operations on Windows (Skia/WPF and Skia/Win32)#21759

Merged
MartinZikmund merged 12 commits intomasterfrom
copilot/fix-thumbnail-drag-drop
Nov 27, 2025
Merged

fix: Add DragUI support for external drag operations on Windows (Skia/WPF and Skia/Win32)#21759
MartinZikmund merged 12 commits intomasterfrom
copilot/fix-thumbnail-drag-drop

Conversation

Copy link
Contributor

Copilot AI commented Nov 6, 2025

GitHub Issue: closes #[issue_number]

PR Type:

  • 🐞 Bugfix

What is the current behavior? 🤔

Dragging image files from File Explorer into Uno Platform applications on Windows (Skia/WPF and Skia/Win32) shows no thumbnail near the cursor during the drag operation.

What is the new behavior? 🚀

External drag operations now display image thumbnails near the cursor on both Skia rendering backends. The implementation:

WPF Target Implementation

  • WpfDragDropExtension.OnHostDragEnter now creates a DragUI instance for external drags (previously null)
  • CreateDragUIForExternalDrag - Creates DragUI with thumbnail content
    • Fast path: Uses OS-provided bitmap if available (DataFormats.Bitmap)
    • Fallback: Loads first image file from drag data
    • Supports: .png, .jpg, .jpeg, .gif, .bmp, .tiff, .ico
  • LoadImageFromFile - Loads images with 96px thumbnail size, validates file existence
  • ConvertBitmapSourceToUnoBitmapImage - Converts WPF BitmapSource to Uno BitmapImage via PNG encoding with 8KB pre-allocated buffer

Win32 Target Implementation

  • Win32DragDropExtension.DragEnter now creates a DragUI instance for external drags (previously null)
  • CreateDragUIForExternalDrag - Creates DragUI with thumbnail content from Win32 formats
    • Retrieves data directly from IDataObject with proper STGMEDIUM lifecycle management
    • Supports CF_DIB (Device Independent Bitmap) format
    • Supports CF_HDROP (file drop) format with image file detection
    • Properly releases STGMEDIUM resources using try-finally blocks
  • ExtractFilePathsFromHDrop - Extracts file paths from Win32 HDROP handle using DragQueryFile API
  • ConvertDibToUnoBitmapImage - Converts Win32 DIB format to Uno BitmapImage
  • LoadImageFromFile - Loads images from file system with validation
  • IsImageFile - Detects image files by extension

Error Handling (Both Targets)

  • Catches specific exceptions: IOException, UnauthorizedAccessException, NotSupportedException, UriFormatException
  • Graceful degradation: Returns DragUI without content on errors
  • Debug logging for troubleshooting

Resource Management (Win32)

  • STGMEDIUM properly acquired and released for each data format
  • Try-finally blocks ensure cleanup even if image conversion fails
  • Independent data retrieval eliminates dependency on indexed lists

PR Checklist ✅

  • 📝 Commits follow Conventional Commits specification
  • 🧪 Runtime/UI tests added (manual testing required - DragDrop_Files sample)
  • 📚 Docs updated (not applicable - internal fix)
  • 🖼️ Screenshot validation (requires manual testing)
  • ❗ Contains NO breaking changes

Other information ℹ️

Thumbnails show by default (CoreDragUIOverride.IsContentVisible = true). Applications can hide them via DragUIOverride in drag event handlers.

This fix applies to both WPF and Win32 Skia rendering backends on Windows Desktop, ensuring consistent drag-and-drop visual feedback across both implementations.

Win32 Implementation Note: The initial implementation had an indexing bug where it assumed mediumsToDispose aligned with formatEtcList, but mediumsToDispose only contains mediums for formats actually retrieved by ReadContentIntoPackage. This was fixed by retrieving data directly from the IDataObject when creating the DragUI.

  • Fixes unoplatform/kahua-private#372
Original prompt

This section details on the original issue you should resolve

<issue_title>When Dragging and Dropping an Image into Kahua, we no longer see the thumbnail around the cursor</issue_title>
<issue_description>### Current behavior 🐛

When dragging and dropping an image file into Kahua, we do not see the thumbnail for the image near the cursor

2025-10-29_11-32-38.mp4

Expected behavior 🎯

When dragging and dropping an image file into kahua, the thumbnail displays near the cursor prior to drop

2025-10-29_11-29-51.mp4

How to reproduce it (as minimally and precisely as possible) 🔬

Repro Steps:

  1. Log in as any user and open File Manager
  2. Drag an image from file explorer onto the log view

Workaround 🛠️

None

Renderer 🎨

  • Skia
  • Native

Affected platforms 📱💻🖥️

Desktop (Windows)

Uno.Sdk version (and other relevant versions) 📦

.59 devbits

IDE version 🧑‍💻

No response

Anything else we need to know? 💬

No response</issue_description>

Comments on the Issue (you are @copilot in this section)

@Jen-Uno @ChaseKopp6 Nov 1 or 7th?
  • Fixes unoplatform/kahua-private#372

💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

@CLAassistant
Copy link

CLAassistant commented Nov 6, 2025

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ MartinZikmund
❌ Copilot
You have signed the CLA already but the status is still pending? Let us recheck it.

Copilot AI changed the title [WIP] Fix missing thumbnail on image drag and drop in Kahua fix: Add DragUI support for external drag operations on Windows (Skia/WPF) Nov 6, 2025
Copilot AI requested a review from MartinZikmund November 6, 2025 13:04
@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-21759/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

⚠️⚠️ The build 181251 has failed on Uno.UI - CI.

@MartinZikmund
Copy link
Member

@copilot please implement this for Win32 target as well

Copy link
Contributor Author

Copilot AI commented Nov 7, 2025

@copilot please implement this for Win32 target as well

Implemented in commit efe66dc. The Win32 target now has the same DragUI support for external drag operations, including:

  • CF_DIB bitmap format support with conversion to Uno BitmapImage
  • CF_HDROP file drop support with image file detection
  • Helper methods for extracting file paths and loading images
  • Consistent error handling and debug logging

The implementation follows the same pattern as the WPF target but uses Win32 APIs to extract bitmap data from HGLOBAL handles.

Copilot AI changed the title fix: Add DragUI support for external drag operations on Windows (Skia/WPF) fix: Add DragUI support for external drag operations on Windows (Skia/WPF and Skia/Win32) Nov 7, 2025
@unodevops
Copy link
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-21759/docs/index.html

@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-21759/wasm-skia-net9/index.html

@MartinZikmund
Copy link
Member

@copilot It does not seem to work on Win32, CreateDragUIForExternalDrag hdropFormatIndex becomes 6, but the following if then fails because mediumsToDispose.Count is 1

Copy link
Contributor Author

Copilot AI commented Nov 7, 2025

@copilot It does not seem to work on Win32, CreateDragUIForExternalDrag hdropFormatIndex becomes 6, but the following if then fails because mediumsToDispose.Count is 1

Fixed in commit c705ac5. The issue was that mediumsToDispose only contains mediums for formats actually retrieved by ReadContentIntoPackage (filtered list), while formatEtcList contains all formats. The indexing logic was incorrect.

The fix retrieves data directly from the IDataObject when creating DragUI, properly managing STGMEDIUM lifecycle with try-finally blocks for cleanup. This eliminates the dependency on the indexed medium list.

@unodevops
Copy link
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-21759/docs/index.html

@unodevops
Copy link
Contributor

⚠️⚠️ The build 181478 has failed on Uno.UI - CI.

@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-21759/wasm-skia-net9/index.html

@github-actions github-actions bot added area/skia ✏️ Categorizes an issue or PR as relevant to Skia platform/wpf 🪟 Categorizes an issue or PR as relevant to WPF labels Nov 7, 2025
@unodevops
Copy link
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-21759/docs/index.html

@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-21759/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

⚠️⚠️ The build 181506 has failed on Uno.UI - CI.

@MartinZikmund
Copy link
Member

@Mergifyio backport release/stable/6.4

@mergify
Copy link
Contributor

mergify bot commented Nov 7, 2025

backport release/stable/6.4

✅ Backports have been created

Details

@MartinZikmund MartinZikmund force-pushed the copilot/fix-thumbnail-drag-drop branch from ab93438 to b098e35 Compare November 24, 2025 14:27
@unodevops
Copy link
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-21759/docs/index.html

@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-21759/wasm-skia-net9/index.html

@nventive-devops
Copy link
Contributor

The build 184695 found UI Test snapshots differences: android-28-net9: 17, android-28-net9-Snap: 31, ios: 5, ios-Snap: 59, skia-linux-screenshots: 60, skia-windows-screenshots: 113, wasm: 115, wasm-automated-net10.0-WinUI-Benchmarks-automated: 0, wasm-automated-net10.0-WinUI-Default-automated: 15, wasm-automated-net10.0-WinUI-RuntimeTests-0: 0, wasm-automated-net10.0-WinUI-RuntimeTests-1: 0, wasm-automated-net10.0-WinUI-RuntimeTests-2: 0

Details
  • android-28-net9: 17 changed over 825

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Detereminate_ProgressRing_Validation50_[#FF0000_#008000_#008000_#FF0000]_Progress-Ring-Value-50
    • FlyoutTest_When_NoOverlayInputPassThroughElement_Then_DontPassThrough_woOff_UITests_Shared_Windows_UI_Xaml_Controls_Flyout_Flyout_OverlayInputPassThroughElement
    • ListView_ListViewWithHeader_InitializesTest_SamplesApp_Windows_UI_Xaml_Controls_ListView_HorizontalListViewGrouped
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • When_NoSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_MultipleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_SingleSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_Parent_PointerMoved_After_drag_on_ScrollViewer_-_touch
    • When_ExtendedSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • UpDownEnabledTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • UpDownTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • NativeCommandBar_Size_Uno_UI_Samples_Content_UITests_CommandBar_CommandBar_Dynamic
    • WebView_NavigateToAnchor_Initial
    • Detereminate_ProgressRing_Validation25_[#FF0000_#008000_#FF0000_#FF0000]_Progress-Ring-Value-25
  • android-28-net9-Snap: 31 changed over 1077

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Default_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ListView_ListView_IsSelected
    • ListView_HorizontalListView_Padding_SamplesApp_Windows_UI_Xaml_Controls_ListView_HorizontalListView_Padding
    • TeachingTip_UITests_Microsoft_UI_Xaml_Controls_TeachingTipTests_TeachingTipPage_UITests_Microsoft_UI_Xaml_Controls_TeachingTipTests_TeachingTipPage
    • TabView_MUXControlsTestApp_TabViewPage_MUXControlsTestApp_TabViewPage
    • ListView_ListView_With_ListViews_Count_Measure_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_With_ListViews_Count_Measure
    • MUX_NumberBox_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • CommandBar_Examples_Uno_UI_Samples_Content_UITests_CommandBar_CommandBar_Examples
    • MediaPlayerElement_Mini_player_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Minimal
    • Pickers_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming
    • Image_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_Basic_UITests_Windows_UI_Xaml_Controls_ImageTests_SvgImageSource_Basic
    • NavigationView_MUXControlsTestApp_NavigationViewRS4Page_MUXControlsTestApp_NavigationViewRS4Page
    • Gesture_Recognizer_Pointer_Events_test_bench_UITests_Shared_Windows_UI_Input_GestureRecognizer_PointersEvents
    • Scrolling_MUXControlsTestApp_ScrollViewDynamicPage_MUXControlsTestApp_ScrollViewDynamicPage
    • Scrolling_MUXControlsTestApp_ScrollViewKeyboardAndGamepadNavigationPage_MUXControlsTestApp_ScrollViewKeyboardAndGamepadNavigationPage
    • MUX_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage
    • NavigationView_MUXControlsTestApp_NavigationViewCustomThemeResourcesPage_MUXControlsTestApp_NavigationViewCustomThemeResourcesPage
    • CommandBarFlyout_MUXControlsTestApp_CommandBarFlyoutPage_MUXControlsTestApp_CommandBarFlyoutPage
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Uno_UI_Samples_UITests_Image_Image_Stretch
    • WebView_WebView_ChromeClient_Uno_UI_Samples_Content_UITests_WebView_WebView_ChromeClient
    • MediaPlayerElement_Sources_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Sources
  • ios: 5 changed over 255

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Check_ListView_Swallows_Measure_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_With_ListViews_Count_Measure
    • TextBox_UpdatedBinding_On_OneWay_Mode_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_Bindings
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
  • ios-Snap: 59 changed over 995

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ColorPicker_ColorPickerSample_UITests_Microsoft_UI_Xaml_Controls_ColorPickerTests_ColorPickerSample
    • ColorPicker_WinUIColorPickerPage_UITests_Shared_Microsoft_UI_Xaml_Controls_ColorPickerTests_WinUIColorPickerPage
    • ListView_ListView_KeyboardInterception_UITests_Windows_UI_Xaml_Controls_ListView_ListView_KeyboardInterception
    • NavigationView_FluentStyle_NavigationViewSample_SamplesApp_Samples_Microsoft_UI_Xaml_Controls_NavigationViewTests_FluentStyle_FluentStyle_NavigationViewSample
    • Brushes_RectangleStretchFill_Uno_UI_Samples_UITests_ImageBrushTestControl_RectangleStretchFill
    • Brushes_Uno_UI_Samples_UITests_ImageBrushTestControl_DoubleImageBrushInList_Uno_UI_Samples_UITests_ImageBrushTestControl_DoubleImageBrushInList
    • Image_EmptyImageFixedWidth_Uno_UI_Samples_UITests_ImageTestsControl_EmptyImageFixedWidth
    • TextBlock_TextBlockMultilineInStarStackPanel_Uno_UI_Samples_Content_UITests_TextBlockControl_TextBlockMultilineInStarStackPanel
    • NavigationView_MUXControlsTestApp_NavigationViewAnimationPage_MUXControlsTestApp_NavigationViewAnimationPage
    • NavigationView_MUXControlsTestApp_NavigationViewBlankPage1_MUXControlsTestApp_NavigationViewBlankPage1
    • NavigationView_MUXControlsTestApp_NavigationViewCompactPaneLengthTestPage_MUXControlsTestApp_NavigationViewCompactPaneLengthTestPage
    • TextBlock_Attributed_text_Simple_Uno_UI_Samples_Content_UITests_TextBlockControl_Attributed_text_Simple
    • Brushes_PanelImageBrush_Uno_UI_Samples_UITests_ImageBrushTestControl_PanelImageBrush
    • Brushes_ImageBrushStretch2_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushStretch2
    • Brushes_Uno_UI_Samples_Samples_Shared_Content_UITests_ImageBrushInList_Uno_UI_Samples_Samples_Shared_Content_UITests_ImageBrushInList
    • Default_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation
    • Default_Uno_UI_Samples_UITests_Image_Image_Margin_Uno_UI_Samples_UITests_Image_Image_Margin
    • Grid_Grid_DataBound_ColumnRow_Definitions_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_DataBound_ColumnRow_Definitions
    • Icons_UITests_Microsoft_UI_Xaml_Controls_ImageIconTests_ImageIconPage_UITests_Microsoft_UI_Xaml_Controls_ImageIconTests_ImageIconPage
    • Microsoft_UI_Composition_UITests_Windows_UI_Composition_MixTransformCliPropertyAndClippedByParentWithBorders_Then_RenderingIsValid_UITests_Windows_UI_Composition_MixTransformCliPropertyAndClippedByParentWithBorders_Then_RenderingIsValid
  • skia-linux-screenshots: 60 changed over 2304

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • BitmapIcon_Monochromatic.png
    • Gamepad_CurrentReading.png-dark
    • Gamepad_Enumeration.png-dark
    • Gamepad_Enumeration.png
    • DoubleImageBrushInList.png-dark
    • DoubleImageBrushInList.png
    • CalendarView_Theming.png
    • DropDownButtonPage.png-dark
    • Focus_FocusVisual_Properties.png-dark
    • Focus_FocusVisual_Properties.png
    • ImageBrushInList.png-dark
    • ImageBrushInList.png
    • DisplayInformation.png-dark
    • DisplayInformation.png
    • ImageBrush_Stretch.png-dark
    • ImageBrush_Stretch.png
    • ImagesInlineInFlipView.png-dark
    • ImagesInlineInFlipView.png
    • ClipboardTests.png-dark
    • ImageIconPage.png-dark
  • skia-windows-screenshots: 113 changed over 2304

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ClipboardTests.png
    • ButtonClippingTestsControl.png-dark
    • ButtonClippingTestsControl.png
    • CalendarView_Theming.png-dark
    • CalendarView_Theming.png
    • ImageSourceUrlMsAppDataScheme.png-dark
    • ImageSourceUrlMsAppDataScheme.png
    • ImageSourceUrlMsAppxScheme.png-dark
    • ImageSourceUrlMsAppxScheme.png
    • Examples.png-dark
    • Examples.png
    • ExpanderColorValidationPage.png-dark
    • ExpanderColorValidationPage.png
    • ImageSourceUrlNoScheme.png-dark
    • ImageSourceUrlNoScheme.png
    • ImageWithLateSource.png-dark
    • ImageWithLateSource.png
    • CompositionEffectBrush.png-dark
    • CompositionEffectBrush.png
    • ElevatedView_CornerRadius.png-dark
  • wasm: 115 changed over 1058

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • UITests.Windows_UI_Xaml.DragAndDrop.DragDrop_TreeView
    • UITests.Windows_UI_Xaml.FocusTests.Focus_FocusState
    • UITests.Windows_UI_Xaml_Controls.ListView.ListViewItem_IsEnabled
    • UITests.Windows_UI_Xaml_Controls.ViewBoxTests.Viewbox_Behavior
    • Uno.UI.Samples.Content.UITests.Animations.VisualState_Setters
    • GenericApp.Views.Samples.Shared.Content.UITests.GridViewMultipleSelectionMode
    • initial_state
    • UITests.Microsoft_UI_Xaml_Controls.InfoBadgeTests.InfoBadgePage
    • UITests.Shared.Windows_UI_Xaml_Controls.Slider.Slider_Features
    • UITests.Shared.Windows_UI_Xaml_Controls.TextBlockControl.Foreground_Brushes
    • UITests.Windows_UI_Xaml.DragAndDrop.DragDrop_TestPage
    • UITests.Windows_UI_Xaml_Controls.CommandBar.CommandBar_Native_With_TextBox
    • UITests.Windows_UI_Xaml_Media.GradientBrushTests.GradientsPage
    • Uno.UI.Samples.Content.UITests.ButtonTestsControl.RadioButton_With_GroupName
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ComboBox.ComboBox_Corners
    • UITests.Shared.Windows_ApplicationModel.Calls.PhoneCallHistoryEntryReaderTests
    • UITests.Windows_UI_Xaml_Controls.TextBox.TextBox_VerticalAlignment
    • UITests.Windows_UI_Xaml_Controls.TextBox.TextBox_Visibility
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ComboBox.ComboBox_Header
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ComboBox.ComboBox_IsSelected
  • wasm-automated-net10.0-WinUI-Benchmarks-automated: 0 changed over 1

  • wasm-automated-net10.0-WinUI-Default-automated: 15 changed over 877

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • Default_StrokeThickness_MyPolyline
    • Default_StrokeThickness_MyPath
    • Default_StrokeThickness_MyRect
    • When_ExtendedSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • Default_StrokeThickness_MyLine
    • Default_StrokeThickness_MyPolygon
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • Default_StrokeThickness_MyEllipse
    • When_HollowCircle2_UITests_Windows_UI_Input_PointersTests_HitTest_GeometryGroup
    • ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • When_StretchAndAlignmentNone_ImageBrush-50-50-None-XLeft-YBottom
    • When_Theme_Changed_No_Crash_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming
    • When_TransformToVisual_ScrollViewer_UITests_Shared_Windows_UI_Xaml_UIElementTests_TransformToVisual_ScrollViewer
  • wasm-automated-net10.0-WinUI-RuntimeTests-0: 0 changed over 1

  • wasm-automated-net10.0-WinUI-RuntimeTests-1: 0 changed over 1

  • wasm-automated-net10.0-WinUI-RuntimeTests-2: 0 changed over 1

Copilot AI and others added 9 commits November 25, 2025 15:12
…xtension

Co-authored-by: MartinZikmund <1075116+MartinZikmund@users.noreply.github.com>
Co-authored-by: MartinZikmund <1075116+MartinZikmund@users.noreply.github.com>
Co-authored-by: MartinZikmund <1075116+MartinZikmund@users.noreply.github.com>
Co-authored-by: MartinZikmund <1075116+MartinZikmund@users.noreply.github.com>
Co-authored-by: MartinZikmund <1075116+MartinZikmund@users.noreply.github.com>
…pExtension

Co-authored-by: MartinZikmund <1075116+MartinZikmund@users.noreply.github.com>
…tion

Co-authored-by: MartinZikmund <1075116+MartinZikmund@users.noreply.github.com>
@MartinZikmund MartinZikmund force-pushed the copilot/fix-thumbnail-drag-drop branch from b098e35 to b5e891f Compare November 25, 2025 14:12
@unodevops
Copy link
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-21759/docs/index.html

@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-21759/wasm-skia-net9/index.html

@unodevops
Copy link
Contributor

🤖 Your Docs stage site is ready! Visit it here: https://unodocsprstaging.z13.web.core.windows.net/pr-21759/docs/index.html

@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-21759/wasm-skia-net9/index.html

@MartinZikmund MartinZikmund force-pushed the copilot/fix-thumbnail-drag-drop branch from 5a27f3d to 0d6eeec Compare November 26, 2025 10:59
@unodevops
Copy link
Contributor

🤖 Your WebAssembly Skia Sample App stage site is ready! Visit it here: https://unowasmprstaging.z20.web.core.windows.net/pr-21759/wasm-skia-net9/index.html

@nventive-devops
Copy link
Contributor

The build 185097 found UI Test snapshots differences: android-28-net9: 19, android-28-net9-Snap: 38, ios: 5, ios-Snap: 60, skia-linux-screenshots: 66, skia-windows-screenshots: 83, wasm: 106, wasm-automated-net10.0-WinUI-Benchmarks-automated: 0, wasm-automated-net10.0-WinUI-Default-automated: 13, wasm-automated-net10.0-WinUI-RuntimeTests-0: 0, wasm-automated-net10.0-WinUI-RuntimeTests-1: 0, wasm-automated-net10.0-WinUI-RuntimeTests-2: 0

Details
  • android-28-net9: 19 changed over 825

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Detereminate_ProgressRing_Validation50_[#FF0000_#008000_#008000_#FF0000]_Progress-Ring-Value-50
    • Popup_PlacementTest_3Default_HCVC_Uno_UI_Samples_Content_UITests_Popup_Popup_HVAlignments
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • UpDownEnabledTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • When_Parent_PointerMoved_After_drag_on_non-scrolling_ScrollViewer
    • When_Parent_PointerMoved_After_drag_on_ScrollViewer_-_touch
    • When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • Detereminate_ProgressRing_Validation25_[#FF0000_#008000_#FF0000_#FF0000]_Progress-Ring-Value-25
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • When_NoSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_MultipleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_SingleSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • DecimalFormatterTest_UITests_Shared_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBoxPage
    • FlyoutTest_When_NoOverlayInputPassThroughElement_Then_DontPassThrough_woOff_UITests_Shared_Windows_UI_Xaml_Controls_Flyout_Flyout_OverlayInputPassThroughElement
    • When_ExtendedSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • Detereminate_ProgressRing_Validation75_[#FF0000_#008000_#008000_#008000]_Progress-Ring-Value-75
    • WebView_NavigateToAnchor_Initial
    • ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • NativeCommandBar_Size_Uno_UI_Samples_Content_UITests_CommandBar_CommandBar_Dynamic
  • android-28-net9-Snap: 38 changed over 1077

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Default_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation_Uno_UI_Samples_Content_UITests_WebView_WebView_AnchorNavigation
    • Gesture_Recognizer_Pointer_Events_test_bench_UITests_Shared_Windows_UI_Input_GestureRecognizer_PointersEvents
    • ListView_ListViewSelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • ListView_HorizontalListView_Padding_SamplesApp_Windows_UI_Xaml_Controls_ListView_HorizontalListView_Padding
    • NavigationView_MUXControlsTestApp_NavigationViewRS4Page_MUXControlsTestApp_NavigationViewRS4Page
    • GridView_Uno_UI_Samples_Content_UITests_GridView_GridViewScrollIntoViewTest_Uno_UI_Samples_Content_UITests_GridView_GridViewScrollIntoViewTest
    • Image_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Horizontal_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Horizontal
    • Scrolling_MUXControlsTestApp_ScrollViewDynamicPage_MUXControlsTestApp_ScrollViewDynamicPage
    • Scrolling_MUXControlsTestApp_ScrollViewKeyboardAndGamepadNavigationPage_MUXControlsTestApp_ScrollViewKeyboardAndGamepadNavigationPage
    • TabView_MUXControlsTestApp_TabViewPage_MUXControlsTestApp_TabViewPage
    • TeachingTip_UITests_Microsoft_UI_Xaml_Controls_TeachingTipTests_TeachingTipPage_UITests_Microsoft_UI_Xaml_Controls_TeachingTipTests_TeachingTipPage
    • MediaPlayerElement_Mini_player_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Minimal
    • Scrolling_MUXControlsTestApp_ScrollViewWithScrollControllersPage_MUXControlsTestApp_ScrollViewWithScrollControllersPage
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Uno_UI_Samples_UITests_Image_Image_Stretch
    • ListView_ListViewChangeView_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewChangeView
    • NavigationView_MUXControlsTestApp_NavigationViewCustomThemeResourcesPage_MUXControlsTestApp_NavigationViewCustomThemeResourcesPage
    • Pickers_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming
    • Icons_UITests_Microsoft_UI_Xaml_Controls_ImageIconTests_ImageIconPage_UITests_Microsoft_UI_Xaml_Controls_ImageIconTests_ImageIconPage
    • Icons_UITests_Shared_Windows_UI_Xaml_Controls_BitmapIconTests_BitmapIcon_Foreground_UITests_Shared_Windows_UI_Xaml_Controls_BitmapIconTests_BitmapIcon_Foreground
    • MUX_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage_UITests_Shared_Microsoft_UI_Xaml_Controls_TreeViewTests_TreeViewPage
  • ios: 5 changed over 255

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • Check_ListView_Swallows_Measure_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_With_ListViews_Count_Measure
    • ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • TextBox_UpdatedBinding_On_OneWay_Mode_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_Bindings
  • ios-Snap: 60 changed over 994

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Brushes_ImageBrushStretch2_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushStretch2
    • Brushes_ImageBrushWithScaleTransform_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushWithScaleTransform
    • Brushes_PanelImageBrush_Uno_UI_Samples_UITests_ImageBrushTestControl_PanelImageBrush
    • Brushes_Uno_UI_Samples_Samples_Shared_Content_UITests_ImageBrushInList_Uno_UI_Samples_Samples_Shared_Content_UITests_ImageBrushInList
    • Brushes_UITests_Shared_Windows_UI_Xaml_Media_ImageBrushTests_ImageBrush_SameWithDelay_UITests_Shared_Windows_UI_Xaml_Media_ImageBrushTests_ImageBrush_SameWithDelay
    • ColorPicker_WinUIColorPickerPage_UITests_Shared_Microsoft_UI_Xaml_Controls_ColorPickerTests_WinUIColorPickerPage
    • GridView_GenericApp_Views_Samples_Shared_Content_UITests_GridViewGrouped_GenericApp_Views_Samples_Shared_Content_UITests_GridViewGrouped
    • Image_EmptyImageFixedWidth_Uno_UI_Samples_UITests_ImageTestsControl_EmptyImageFixedWidth
    • ListView_ListView_Aligned_Left_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_Aligned_Left
    • Microsoft_UI_Composition_UITests_Windows_UI_Composition_MixTransformCliPropertyAndClippedByParentWithBorders_Then_RenderingIsValid_UITests_Windows_UI_Composition_MixTransformCliPropertyAndClippedByParentWithBorders_Then_RenderingIsValid
    • Microsoft_UI_Composition_UITests_Windows_UI_Composition_TransformElementClippedByParentWithBorder_Then_ClippingAppliedPostRendering_UITests_Windows_UI_Composition_TransformElementClippedByParentWithBorder_Then_ClippingAppliedPostRendering
    • Microsoft_UI_Composition_UITests_Windows_UI_Composition_TransformElementClippedByParent_Then_ClippingAppliedPostRendering_UITests_Windows_UI_Composition_TransformElementClippedByParent_Then_ClippingAppliedPostRendering
    • MediaPlayerElement_Using_mp3_Audio_only_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Mp3_Extension
    • MediaPlayerElement_Using_ogg_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Ogg_Extension
    • NavigationView_FluentStyle_NavigationViewSample_SamplesApp_Samples_Microsoft_UI_Xaml_Controls_NavigationViewTests_FluentStyle_FluentStyle_NavigationViewSample
    • MenuBar_SimpleMenuBar_UITests_Shared_Windows_UI_Xaml_Controls_MenuBarTests_SimpleMenuBar
    • NavigationView_MUXControlsTestApp_NavigationViewAnimationPage_MUXControlsTestApp_NavigationViewAnimationPage
    • Brushes_ImageBrushWithCompositeTransform_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushWithCompositeTransform
    • Brushes_RectangleStretchFill_Uno_UI_Samples_UITests_ImageBrushTestControl_RectangleStretchFill
    • Brushes_UITests_Windows_UI_Xaml_Media_BrushesTests_RevealBrush_Fallback_UITests_Windows_UI_Xaml_Media_BrushesTests_RevealBrush_Fallback
  • skia-linux-screenshots: 66 changed over 2304

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • CalendarView_Theming.png-dark
    • ColorPickerSample.png-dark
    • ColorPickerSample.png
    • EllipsemaskingEllipseGrid.png-dark
    • EllipsemaskingEllipseGrid.png
    • Gamepad_CurrentReading.png-dark
    • Gamepad_Enumeration.png-dark
    • Gamepad_Enumeration.png
    • ClipboardTests.png-dark
    • Buttons.png-dark
    • ImageBrushInList.png-dark
    • ImageBrushInList.png
    • DropDownButtonPage.png-dark
    • DoubleImageBrushInList.png-dark
    • DoubleImageBrushInList.png
    • ImageBrush_Formats.png-dark
    • ImageBrush_Formats.png
    • ImageBrush_Stretch.png-dark
    • ImageBrush_Stretch.png
    • ButtonClippingTestsControl.png
  • skia-windows-screenshots: 83 changed over 2304

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • DropDownButtonPage.png-dark
    • DropDownButtonPage.png
    • CalendarView_Theming.png-dark
    • Gamepad_CurrentReading.png-dark
    • Gamepad_Enumeration.png-dark
    • Gamepad_Enumeration.png
    • ClipboardTests.png
    • ContentPresenter_NativeEmbedding.png-dark
    • ContentPresenter_NativeEmbedding.png
    • CalendarView_Theming.png
    • DisplayInformation.png-dark
    • DisplayInformation.png
    • ButtonClippingTestsControl.png-dark
    • ColorPickerSample.png-dark
    • ColorPickerSample.png
    • DoubleImageBrushInList.png-dark
    • DoubleImageBrushInList.png
    • Examples.png
    • ImageBrushInList.png-dark
    • ImageBrushInList.png
  • wasm: 106 changed over 1058

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • initial_state
    • UITests.Shared.Windows_UI_Xaml_Controls.ListView.ListView_ObservableCollection_Unused_Space
    • UITests.Windows_UI_Xaml_Controls.BorderTests.PanelWithNullBrushAndNonZeroThickness
    • UITests.Windows_UI_Xaml_Controls.CalendarView.CalendarView_Theming
    • Uno.UI.Samples.Content.UITests.ButtonTestsControl.CheckBox_Button
    • GenericApp.Views.Samples.Shared.Content.UITests.GridViewMultipleSelectionMode
    • UITests.Shared.Windows_UI_Xaml_Controls.Slider.Slider_Features
    • UITests.Shared.Windows_UI_Xaml_Controls.TextBlockControl.Foreground_Brushes
    • UITests.Shared.Windows_UI_Xaml_Controls.TextBlockControl.SimpleText_MaxLines_Different_Font_Size
    • UITests.Windows_ApplicationModel.ClipboardTests
    • UITests.Windows_UI_Xaml.DragAndDrop.DragDrop_TreeView
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ComboBox.ComboBox_IsSelected
    • UITests.Windows_UI_Xaml_Controls.ImageTests.BitmapImage_vs_SvgImageSource
    • UITests.Windows_UI_Xaml_Controls.Repeater.ItemsRepeater_Nested
    • UITests.Windows_UI_Xaml_Controls.ViewBoxTests.Viewbox_Behavior
    • UITests.Windows_UI_Xaml_Input.Keyboard.Keyboard_Events
    • Uno.UI.Samples.Content.UITests.ButtonTestsControl.AppBar_KeyBoard
    • Uno.UI.Samples.Content.UITests.GridTestsControl.Grid_Auto_Center_Cell
    • UITests.Shared.Microsoft_UI_Xaml_Controls.ExpanderTests.WinUIExpanderPage
    • UITests.Shared.Windows_UI_Xaml.FrameworkElementTests.XamlEvent_Leak
  • wasm-automated-net10.0-WinUI-Benchmarks-automated: 0 changed over 1

  • wasm-automated-net10.0-WinUI-Default-automated: 13 changed over 877

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Default_StrokeThickness_MyPolygon
    • Default_StrokeThickness_MyLine
    • ListView_SelectedItems_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewSelectedItems
    • Default_StrokeThickness_MyPolyline
    • Default_StrokeThickness_MyEllipse
    • Default_StrokeThickness_MyRect
    • Default_StrokeThickness_MyPath
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • When_HollowCircle2_UITests_Windows_UI_Input_PointersTests_HitTest_GeometryGroup
    • When_NoSelectionWithItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • When_SingleSelectionWithoutItemClick_Then_PointersEvents_UITests_Windows_UI_Xaml_Controls_ListView_ListView_Selection_Pointers
    • TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • When_Theme_Changed_No_Crash_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarView_Theming
  • wasm-automated-net10.0-WinUI-RuntimeTests-0: 0 changed over 1

  • wasm-automated-net10.0-WinUI-RuntimeTests-1: 0 changed over 1

  • wasm-automated-net10.0-WinUI-RuntimeTests-2: 0 changed over 1

@MartinZikmund MartinZikmund merged commit 0aacfcd into master Nov 27, 2025
106 checks passed
@MartinZikmund MartinZikmund deleted the copilot/fix-thumbnail-drag-drop branch November 27, 2025 13:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/skia ✏️ Categorizes an issue or PR as relevant to Skia platform/wpf 🪟 Categorizes an issue or PR as relevant to WPF

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants