Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: FauxGradientBorderPresenter control #7649

Conversation

MartinZikmund
Copy link
Member

@MartinZikmund MartinZikmund commented Dec 14, 2021

GitHub Issue (If applicable): closes #7621, closes #7110

PR Type

What kind of change does this PR introduce?

  • Bugfix

Future improvements

  • Border.iOSmacOS.cs - See whether UpdateBorderPartial() => this.SetNeedsDisplay(); is actually needed

What is the current behavior?

Current solution for fake gradient borders on WinUI 2.6 had several downsides:

  • Required a lot of custom workarounds in XAML
  • Did not allow for native linear gradient border on platforms where it was fully supported
  • Could not be hidden when thickness was 0
  • Always overlayed even if border brush was not linear gradient brush anymore

What is the new behavior?

Using a new internal control to render the border based on current settings of BorderBrush, BorderThickness and CornerRadius.

PR Checklist

Please check if your PR fulfills the following requirements:

@gitpod-io
Copy link

gitpod-io bot commented Dec 14, 2021

@robloo
Copy link
Contributor

robloo commented Dec 14, 2021

I guess this is required to implement the new Fluent v2 borders on all platforms such as Wasm? If so, what is this going to do to the visual tree? I would not usually expect Uno to inject custom controls like this on standard input elements like TextBox.

Edit: I guess my point is the LinearGradientBrush itself should have these types of hacks in my opinion - perhaps a new Uno-specific property to enable them.

@MartinZikmund MartinZikmund force-pushed the dev/mazi/faux-linear-gradient-border branch 2 times, most recently from 898c14f to c31abdb Compare December 15, 2021 12:28
@nventive-devops
Copy link
Contributor

The build 38665 found UI Test snapshots differences: android-28-net6: 0, android-28-xamarin: 23, android-28-xamarin-Snap: 20, ios: 29, ios-Snap: 61, skia-gtk-screenshots: 146, wasm: 16, wasm-automated-net5.0-Benchmarks: 0, wasm-automated-net5.0-Default: 9, wasm-automated-net5.0-RuntimeTests: 0

Details
  • android-28-net6: 0 changed over 0

  • android-28-xamarin: 23 changed over 817

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • FocusManager_GetFocusedElement_ComboBoxItem_Validation_FocusManager_-_GetFocusedElement_-_ComboBoxItem_-_2_-_After_Selection
    • FocusManager_GetFocusedElement_TextBoxMultiLine_Validation_FocusManager_-_GetFocusedElement_-_TextBoxMultiLine_-_2_-_After_Selection
    • ImageStretch_None_Uno_UI_Samples_UITests_ImageTestsControl_Image_Stretch_None
    • FocusManager_GetFocusedElement_ComboBox_Validation_FocusManager_-_GetFocusedElement_-_ComboBox_-_2_-_After_Selection
    • ComboBox_Dropdown_Background_ComboBox_open
    • DismissablaPopups_ForwardOrder_Validation_UITests_Shared_Windows_UI_Xaml_Controls_Popup_Popup_LightDismiss
    • FocusManager_GetFocusedElement_ComboBox_LostFocus_Validation_FocusManager_-_LostFocus_-_ComboBox_-_2_-_Click_outside
    • ComboBoxTests_Fullscreen_Popup_Generic_Closed
    • ComboBoxTests_Fullscreen_Popup_Generic_Opened
    • CommandBar_LongTitle_Validation_CommandBar_-_LongTitle_-_4_-_Orientation_Landscape
    • FocusManager_GetFocusedElement_ComboBoxItem_LostFocus_Validation_FocusManager_-_LostFocus_-_ComboBoxItem_-_2_-_Click_outside
    • FocusManager_GetFocusedElement_TextBoxSingleLine_LostFocus_Validation_Uno_UI_Samples_Content_UITests_FocusTests_FocusManager_GetFocus_Automated
    • PopupWithOverlay_After
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • When_Click_Outside_Dialog_Expect_No_Dismiss_AfterClicking
    • When_Click_Outside_Dialog_Expect_No_Dismiss_BeforeClicking
    • TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • TimePicker_Header_UITests_Windows_UI_Xaml_Controls_TimePicker_TimePicker_Header
    • When_Parent_PointerMoved_After_drag_on_non-scrolling_ScrollViewer
  • android-28-xamarin-Snap: 20 changed over 932

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ComboBox_UITests_Shared_Windows_UI_Xaml_Controls_ComboBox_ComboBox_DropDownPlacement_UITests_Shared_Windows_UI_Xaml_Controls_ComboBox_ComboBox_DropDownPlacement
    • ContentControlTestsControl_ContentControl_Nested_TemplatedParent_Uno_UI_Samples_Content_UITests_ContentControlTestsControl_ContentControl_Nested_TemplatedParent
    • GridTestsControl_CenteredGridinGridwiththreefixedsizechildren_Uno_UI_Samples_Content_UITests_GridTestsControl_CenteredGridinGridwiththreefixedsizechildren
    • Default_UITests_Windows_UI_Xaml_DragAndDrop_DragDrop_TestPage_UITests_Windows_UI_Xaml_DragAndDrop_DragDrop_TestPage
    • Image_UniformToFill100x100_Uno_UI_Samples_UITests_ImageTestsControl_UniformToFill100x100
    • NavigationView_FluentStyle_NavigationViewSample_SamplesApp_Samples_Microsoft_UI_Xaml_Controls_NavigationViewTests_FluentStyle_FluentStyle_NavigationViewSample
    • Progress_UITests_Microsoft_UI_Xaml_Controls_ProgressBar_WinUIProgressBarSimple_UITests_Microsoft_UI_Xaml_Controls_ProgressBar_WinUIProgressBarSimple
    • Progress_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRingPage_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRingPage
    • Progress_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_CustomSources_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_CustomSources
    • NavigationView_MUXControlsTestApp_NavigationViewPage_MUXControlsTestApp_NavigationViewPage
    • Shapes_UITests_Windows_UI_Xaml_Shapes_Offscreen_Shapes_UITests_Windows_UI_Xaml_Shapes_Offscreen_Shapes
    • Progress_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • Progress_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • UIElement_TransformToVisual_Transform_UITests_Shared_Windows_UI_Xaml_UIElementTests_TransformToVisual_Transform
    • WebView_WebView_NavigateToString_Uno_UI_Samples_Content_UITests_WebView_WebView_NavigateToString
    • WebView_WebView_WithHeaders_Uno_UI_Samples_Content_UITests_WebView_WebView_WithHeaders
    • TextBox_Uno_UI_Samples_Content_UITests_TextBoxControl_PasswordBox_Reveal_Scroll_Uno_UI_Samples_Content_UITests_TextBoxControl_PasswordBox_Reveal_Scroll
    • TimePicker_UITests_Windows_UI_Xaml_Controls_TimePicker_TimePicker_Header_UITests_Windows_UI_Xaml_Controls_TimePicker_TimePicker_Header
    • Time_Picker_TimePicker_TimePickerFlyoutStyle_UITests_Windows_UI_Xaml_Controls_TimePicker_TimePicker_TimePickerFlyoutStyle
    • WebView_WebView_Mailto_Uno_UI_Samples_Content_UITests_WebView_WebView_Mailto
  • ios: 29 changed over 288

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • FocusManager_FocusDirection_Up_Validation_Uno_UI_Samples_Content_UITests_FocusTests_FocusManager_FocusDirection
    • Screenshots_Image_Stretch_Alignment_Equal_Mode-3
    • Screenshots_Image_Stretch_Alignment_Equal_Mode-0
    • TextBox_RoundedCorners_UITests_Shared_Windows_UI_Xaml_Controls_TextBoxTests_TextBox_RoundedCorners
    • Screenshots_Image_Stretch_Alignment_Equal_Mode-1
    • Screenshots_Image_Stretch_Alignment_Equal_Mode-2
    • When_MaxLines_Changed_Without_TextWrapping_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_SimpleText_MaxLines_Different_Font_Size
    • When_MaxLines_Changed_With_TextWrapping_UITests_Shared_Windows_UI_Xaml_Controls_TextBlockControl_SimpleText_MaxLines_Different_Font_Size
    • FocusManager_FocusDirection_Previous_Validation_Uno_UI_Samples_Content_UITests_FocusTests_FocusManager_FocusDirection
    • FocusManager_FocusDirection_Right_Validation_Uno_UI_Samples_Content_UITests_FocusTests_FocusManager_FocusDirection
    • NativeCommandBar_Size_thirdOrientation
    • Keyboard_Textbox_InsideScrollViewer_Validation_1_-_Remove_Focus_on_filledTextBox
    • ListView_ExpandableItemLarge_ExpandHeaderWithMultipleItems_Validation_Collapsed_State
    • ListView_ExpandableItemLarge_ExpandHeaderWithMultipleItems_Validation_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListView_Expandable_Item_Large
    • ListView_ExpandableItemLarge_ExpandHeaderWithSingleItem_Validation_Collapsed_State
    • ListView_ExpandableItemLarge_ExpandHeaderWithSingleItem_Validation_Expanded_State
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • Keyboard_Textbox_InsideScrollViewer_Validation_0_-_Remove_Focus_on_normalTextBox
    • Keyboard_Textbox_NoScrollViewer_Validation_0_-_Remove_Focus_on_normalTextBox
  • ios-Snap: 61 changed over 923

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Border_AutoBorderStretchwithtopmargin_Uno_UI_Samples_UITests_BorderTestsControl_AutoBorderStretchwithtopmargin
    • Border_AutoBorderStretchwithbottommargin_Uno_UI_Samples_UITests_BorderTestsControl_AutoBorderStretchwithbottommargin
    • Animations_DoubleAnimationUsingKeyFrames_TranslateX_GenericApp_Views_Content_UITests_Animations_DoubleAnimationUsingKeyFrames_TranslateX
    • Border_AutoBorderStretchwithleftmargin_Uno_UI_Samples_UITests_BorderTestsControl_AutoBorderStretchwithleftmargin
    • Default_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_CornerRadius_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_CornerRadius
    • DefaultCategory_Grid_DataBound_ColumnRow_Definitions_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_DataBound_ColumnRow_Definitions
    • GridTestsControl_Quadrant_all_100_Uno_UI_Samples_Content_UITests_GridTestsControl_Quadrant_all_100
    • ImageBrushTestControl_ImageBrushWithRotateTransform_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushWithRotateTransform
    • 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
    • Image_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Vertical_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Vertical
    • Image_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Alignment_SizeOnControl_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Alignment_SizeOnControl
    • ListView_HorizontalListViewGrouped_SamplesApp_Windows_UI_Xaml_Controls_ListView_HorizontalListViewGrouped
    • ListView_ListViewGroupedEmpty_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewGroupedEmpty
    • GridTestsControl_Grid_with_Text_HorizontalAlignment_With_Margin_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_with_Text_HorizontalAlignment_With_Margin
    • GridTestsControl_Grid_with_three_UserControl_With_5_Margin_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_with_three_UserControl_With_5_Margin
    • GridTestsControl_Grid_with_UILabel_TextAlignmentVertical_Bottom_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_with_UILabel_TextAlignmentVertical_Bottom
    • GridTestsControl_Grid_with_UserControl_HorizonalAlignment_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_with_UserControl_HorizonalAlignment
    • GridTestsControl_Grid_with_UserControl_VerticalAlignment_Variable_Height_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_with_UserControl_VerticalAlignment_Variable_Height
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Bigger_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Bigger
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Equal_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Equal
  • skia-gtk-screenshots: 146 changed over 979

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ColorPicker-WinUIColorPickerPage
    • CommandBar-Extensions
    • CommandBar-Native
    • DragAndDrop-DragDrop_TestPage
    • Gesture recognizer-Pointer Events test bench
    • Image-Image_Stretch_None_ScrollViewer
    • Image-UniformToFill100x100
    • Image-Image_Stretch_Alignment_Equal
    • Image-Image_Stretch_Alignment_SizeOnControl
    • Image-Image_Stretch_Alignment_Smaller
    • Image-Image_Stretch_Alignment_Taller
    • PathTestsControl-FixedWidthUniform
    • PathTestsControl-HorizontalAlignmentStretchVerticalAlignmentBottom
    • PathTestsControl-Invisible
    • NavigationView-PaneLayoutTestPage
    • NumberBox-MUX_Test
    • NumberBox-NumberBox_ExpressionTest
    • NumberBox-NumberBox_Header
    • Page-Page_Automated
    • Page-Page_Update_Background
  • wasm: 16 changed over 935

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • UITests.Microsoft_UI_Xaml_Controls.ProgressRing.WinUIProgressRing_Features
    • SamplesApp.Samples.Microsoft_UI_Xaml_Controls.NavigationViewTests.FluentStyle.FluentStyle_NavigationViewSample
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ListView.ListView_IsSelected
    • UITests.Microsoft_UI_Xaml_Controls.ColorPickerTests.ColorPickerSample
    • UITests.Shared.Windows_UI_Xaml_Automation.AutomationProperties_Name
    • UITests.Uno_Web.Http.CookieManagerTests
    • UITests.Shared.Windows_UI_Xaml_Controls.ImageTests.Image_Stretch_Algmnt_Inf_Horizontal
    • UITests.Windows_UI_Xaml.DragAndDrop.DragDrop_TestPage
    • UITests.Windows_UI_Xaml_Controls.LoopingSelectorTests.LoopingSelector_Short
    • UITests.Windows_UI_Xaml_Shapes.Offscreen_Shapes
    • Uno.UI.Samples.Content.UITests.Transform.Image_With_RotateTransform
    • Uno.UI.Samples.UITests.Image.Image_Margin
    • Uno.UI.Samples.UITests.Image.Image_Stretch
    • Uno.UI.Samples.UITests.Image.Image_Stretch_Alignment_Bigger
    • Uno.UI.Samples.UITests.Image.Image_Stretch_Alignment_Equal
    • Uno.UI.Samples.UITests.Image.Image_Stretch_Alignment_Wider
  • wasm-automated-net5.0-Benchmarks: 0 changed over 1

  • wasm-automated-net5.0-Default: 9 changed over 830

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • DatePicker_Flyout_DatePicker_-_Flyout
    • Screenshots_Image_Stretch_Alignment_SizeOnControl_Mode-0
    • ListView_Weird_Measure_During_Arrange_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_Weird_Measure
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • Screenshots_Image_Stretch_Algmnt_Inf_Vertical_Mode-1
    • ScrollViewer_Fluent_ScrollBar_Appears_No_scroll_indicators
    • ScrollViewer_Fluent_ScrollBar_Appears_Scroll_indicators_visible
    • TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • When_TransformToVisual_ScrollViewer_UITests_Shared_Windows_UI_Xaml_UIElementTests_TransformToVisual_ScrollViewer
  • wasm-automated-net5.0-RuntimeTests: 0 changed over 1

@MartinZikmund MartinZikmund force-pushed the dev/mazi/faux-linear-gradient-border branch from c31abdb to ae24ea1 Compare December 15, 2021 20:11
@nventive-devops
Copy link
Contributor

The build 38708 found UI Test snapshots differences: android-28-net6: 0, android-28-xamarin: 25, android-28-xamarin-Snap: 19, ios: 36, ios-Snap: 64, skia-gtk-screenshots: 126, wasm: 27, wasm-automated-net5.0-Benchmarks: 0, wasm-automated-net5.0-Default: 10, wasm-automated-net5.0-RuntimeTests: 0

Details
  • android-28-net6: 0 changed over 0

  • android-28-xamarin: 25 changed over 817

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ComboBoxTests_Fullscreen_Popup_Generic_Opened
    • ComboBox_Dropdown_Background_ComboBox_open
    • CommandTest_UITests_Microsoft_UI_Xaml_Controls_SplitButtonTests_SplitButtonPage
    • ComboBoxTests_Fullscreen_Popup_Generic_Closed
    • FocusManager_GetFocusedElement_ComboBoxItem_Validation_FocusManager_-_GetFocusedElement_-_ComboBoxItem_-_2_-_After_Selection
    • FocusManager_GetFocusedElement_ComboBox_LostFocus_Validation_FocusManager_-_LostFocus_-_ComboBox_-_2_-_Click_outside
    • FocusManager_GetFocusedElement_ComboBox_Validation_FocusManager_-_GetFocusedElement_-_ComboBox_-_2_-_After_Selection
    • FocusManager_GetFocusedElement_TextBoxMultiLine_Validation_FocusManager_-_GetFocusedElement_-_TextBoxMultiLine_-_2_-_After_Selection
    • FocusManager_GetFocusedElement_TextBoxSingleLine_LostFocus_Validation_Uno_UI_Samples_Content_UITests_FocusTests_FocusManager_GetFocus_Automated
    • FocusManager_GetFocusedElement_TextBoxSingleLine_Validation_FocusManager_-_GetFocusedElement_-_TextBoxSingleLine_-_2_-_After_Selection
    • FocusManager_GetFocusedElement_ToggleButton_LostFocus_Validation_Uno_UI_Samples_Content_UITests_FocusTests_FocusManager_GetFocus_Automated
    • FocusManager_GetFocusedElement_ComboBoxItem_LostFocus_Validation_FocusManager_-_LostFocus_-_ComboBoxItem_-_2_-_Click_outside
    • PopupWithOverlay_After
    • 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
    • TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • TimePicker_Header_UITests_Windows_UI_Xaml_Controls_TimePicker_TimePicker_Header
    • WebView_NavigateToAnchor_click_anchor
    • WebView_NavigateToAnchor_navigate_to_anchor
  • android-28-xamarin-Snap: 19 changed over 933

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Automation_UITests_Shared_Windows_UI_Xaml_Automation_AutomationProperties_Name_UITests_Shared_Windows_UI_Xaml_Automation_AutomationProperties_Name
    • ColorPicker_ColorPickerSample_UITests_Microsoft_UI_Xaml_Controls_ColorPickerTests_ColorPickerSample
    • ContentControlTestsControl_ContentControl_Nested_TemplatedParent_Uno_UI_Samples_Content_UITests_ContentControlTestsControl_ContentControl_Nested_TemplatedParent
    • ComboBox_UITests_Shared_Windows_UI_Xaml_Controls_ComboBox_ComboBox_DropDownPlacement_UITests_Shared_Windows_UI_Xaml_Controls_ComboBox_ComboBox_DropDownPlacement
    • GridTestsControl_CenteredGridinGridwiththreefixedsizechildren_Uno_UI_Samples_Content_UITests_GridTestsControl_CenteredGridinGridwiththreefixedsizechildren
    • Image_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_Formats_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_Formats
    • NavigationView_FluentStyle_NavigationViewSample_SamplesApp_Samples_Microsoft_UI_Xaml_Controls_NavigationViewTests_FluentStyle_FluentStyle_NavigationViewSample
    • Map_MapControl_Uno_UI_Samples_Content_UITests_MapControl_MapControl
    • MediaPlayerElement_Mini_player_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Minimal
    • Progress_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_CustomSources_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_CustomSources
    • Progress_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • Progress_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • Progress_UITests_Microsoft_UI_Xaml_Controls_ProgressBar_WinUIProgressBarSimple_UITests_Microsoft_UI_Xaml_Controls_ProgressBar_WinUIProgressBarSimple
    • Progress_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRingPage_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRingPage
    • TabView_UITests_Microsoft_UI_Xaml_Controls_TabViewTests_TabViewPage_UITests_Microsoft_UI_Xaml_Controls_TabViewTests_TabViewPage
    • TextBox_Uno_UI_Samples_Content_UITests_TextBoxControl_PasswordBox_Reveal_Scroll_Uno_UI_Samples_Content_UITests_TextBoxControl_PasswordBox_Reveal_Scroll
    • TimePicker_UITests_Windows_UI_Xaml_Controls_TimePicker_TimePicker_Header_UITests_Windows_UI_Xaml_Controls_TimePicker_TimePicker_Header
    • Time_Picker_TimePicker_TimePickerFlyoutStyle_UITests_Windows_UI_Xaml_Controls_TimePicker_TimePicker_TimePickerFlyoutStyle
    • WebView_WebView_WithHeaders_Uno_UI_Samples_Content_UITests_WebView_WebView_WithHeaders
  • ios: 36 changed over 288

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • DatePicker_Flyout_DatePicker_-_Flyout
    • FocusManager_FocusDirection_Previous_Validation_Uno_UI_Samples_Content_UITests_FocusTests_FocusManager_FocusDirection
    • FocusManager_FocusDirection_Right_Validation_Uno_UI_Samples_Content_UITests_FocusTests_FocusManager_FocusDirection
    • FocusManager_FocusDirection_Up_Validation_Uno_UI_Samples_Content_UITests_FocusTests_FocusManager_FocusDirection
    • ImageStretch_None_Uno_UI_Samples_UITests_ImageTestsControl_Image_Stretch_None
    • Keyboard_Textbox_InsideScrollViewer_Validation_0_-_Remove_Focus_on_normalTextBox
    • Keyboard_Textbox_InsideScrollViewer_Validation_1_-_Remove_Focus_on_filledTextBox
    • Keyboard_Textbox_InsideScrollViewer_Validation_2_-_Remove_Focus_on_placeholderTextTextBox
    • Keyboard_Textbox_InsideScrollViewer_Validation_3_-_Remove_Focus_on_disabledTextBox
    • Keyboard_Textbox_InsideScrollViewer_Validation_4_-_Remove_Focus_on_multilineTextBox
    • Keyboard_Textbox_InsideScrollViewer_Validation_5_-_Remove_Focus_on_numberTextBox
    • Keyboard_Textbox_InsideScrollViewer_Validation_Uno_UI_Samples_Content_UITests_TextBoxControl_Input_Test_InsideScrollerViewer_Automated
    • Keyboard_Textbox_NoScrollViewer_Validation_1_-_Remove_Focus_on_filledTextBox
    • ListView_ExpandableItemLarge_ExpandHeaderWithMultipleItems_Validation_Collapsed_State
    • ListView_ExpandableItemLarge_ExpandHeaderWithMultipleItems_Validation_Expanded_State
    • ListView_ExpandableItemLarge_ExpandHeaderWithMultipleItems_Validation_Initial_State
    • ListView_ExpandableItemLarge_ExpandHeaderWithMultipleItems_Validation_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListView_Expandable_Item_Large
    • ListView_ExpandableItemLarge_ExpandHeaderWithSingleItem_Validation_Collapsed_State
    • ListView_ExpandableItemLarge_ExpandHeaderWithSingleItem_Validation_Expanded_State
    • ListView_ExpandableItemLarge_ExpandHeaderWithSingleItem_Validation_Initial_State
  • ios-Snap: 64 changed over 924

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Animations_DoubleAnimationUsingKeyFrames_TranslateX_GenericApp_Views_Content_UITests_Animations_DoubleAnimationUsingKeyFrames_TranslateX
    • Animations_DoubleAnimation_RenderTransformOrigin_GenericApp_Views_Content_UITests_Animations_DoubleAnimation_RenderTransformOrigin
    • ComboBox_ComboBox_NativePopup_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ComboBox_ComboBox_NativePopup
    • ContentPresenter_ContentPresenter_Background_Uno_UI_Samples_Content_UITests_ContentPresenter_ContentPresenter_Background
    • ContentPresenter_ContentPresenter_TextProperties_Uno_UI_Samples_Content_UITests_ContentPresenter_ContentPresenter_TextProperties
    • ContentControlTestsControl_ContentControl_SetNull_Uno_UI_Samples_Content_UITests_ContentControlTestsControl_ContentControl_SetNull
    • Default_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_CornerRadius_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_CornerRadius
    • Flyout_Flyout_Transforms_On_Target_UITests_Shared_Windows_UI_Xaml_Controls_Flyout_Flyout_Transforms_On_Target
    • GridTestsControl_Grid_with_three_UserControl_With_5_Margin_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_with_three_UserControl_With_5_Margin
    • GridTestsControl_Grid_with_UserControl_HorizonalAlignment_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_with_UserControl_HorizonalAlignment
    • GridTestsControl_Grid_with_Stack_Panel_and_Trimming_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_with_Stack_Panel_and_Trimming
    • ImageBrushTestControl_ImageBrushAlignmentXY_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushAlignmentXY
    • ImageBrushTestControl_ImageBrushWithRotateTransform_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushWithRotateTransform
    • Image_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Vertical_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Vertical
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Wider_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Wider
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Uno_UI_Samples_UITests_Image_Image_Stretch
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Equal_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Equal
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Smaller_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Smaller
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Taller_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Taller
    • ListView_ListViewHeaderImage_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListViewHeaderImage
  • skia-gtk-screenshots: 126 changed over 980

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Border-Border_CornerRadius_Binding
    • ColorPicker-ColorPickerSample
    • ColorPicker-WinUIColorPickerPage
    • CommandBar-Native
    • DragAndDrop-DragDrop_TestPage
    • CommandBar-CommandBar_With_Long_Sentences
    • Image-Image_Stretch_Algmnt_Inf_Vertical
    • Image-Image_Stretch_Alignment_Bigger
    • Image-Image_Stretch_Alignment_Smaller
    • Image-Image_Stretch_Alignment_Taller
    • Image-Image_Stretch_Alignment_Wider
    • Image-Image_Stretch_None
    • Image-Image_Stretch_None_ScrollViewer
    • Image-ImageWithLateSourceFixedDimensions
    • Image-UniformToFill100x100
    • InfoBadge-InfoBadgePage
    • InfoBar-InfoBarPage
    • ListView-ListView_IsSelected
    • ImageBrushTestControl-DoubleImageBrushInList
    • NavigationView-NavigationViewCustomThemeResourcesPage
  • wasm: 27 changed over 936

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • SamplesApp.Samples.Microsoft_UI_Xaml_Controls.NavigationViewTests.FluentStyle.FluentStyle_NavigationViewSample
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ListView.ListView_IsSelected
    • GenericApp.Views.Content.UITests.ImageBrushTestControl.ImageBrush_UniformToFill
    • SamplesApp.Wasm.Windows_UI_Xaml_Media.Transform.TransformToVisual_Translate2d
    • UITests.Microsoft_UI_Xaml_Controls.ColorPickerTests.ColorPickerSample
    • UITests.Microsoft_UI_Xaml_Controls.ProgressRing.WinUIProgressRingPage
    • UITests.Microsoft_UI_Xaml_Controls.ProgressRing.WinUIProgressRing_Features
    • UITests.Shared.Windows_UI_Xaml.UIElementTests.TransformToVisual_Transform
    • UITests.Shared.Windows_UI_Xaml_Controls.ImageTests.Image_Stretch_Alignment_SizeOnControl
    • UITests.Windows_UI_Xaml.DragAndDrop.DragDrop_TestPage
    • UITests.Windows_UI_Xaml_Media.ImageBrushTests.ImageBrush_Formats
    • UITests.Windows_UI_Xaml_Shapes.Offscreen_Shapes
    • Uno.UI.Samples.Content.UITests.TextBlockControl.TextBlockMultilineInStarStackPanel
    • Uno.UI.Samples.Content.UITests.TextBlockControl.TextBlock_FixedWidth_With_DataBound_Run
    • Uno.UI.Samples.Content.UITests.TextBlockControl.TextBoxSizeChanging
    • Uno.UI.Samples.UITests.Image.Image_Margin
    • Uno.UI.Samples.UITests.Image.Image_Stretch_Alignment_Equal
    • Uno.UI.Samples.UITests.Image.Image_Stretch_Alignment_Smaller
    • Uno.UI.Samples.UITests.Image.Image_Stretch_Alignment_Taller
    • Uno.UI.Samples.UITests.ImageBrushTestControl.ImageBrushAlignmentXY
  • wasm-automated-net5.0-Benchmarks: 0 changed over 1

  • wasm-automated-net5.0-Default: 10 changed over 832

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ListView_Weird_Measure_During_Arrange_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_Weird_Measure
    • ScrollViewer_Fluent_ScrollBar_Appears_No_scroll_indicators
    • ScrollViewer_Fluent_ScrollBar_Appears_Scroll_indicators_visible
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • Validate_Offscreen_Shapes_UITests_Windows_UI_Xaml_Shapes_Offscreen_Shapes
    • When_FallbackColor_Set_After
    • When_FallbackColor_Set_Initial
    • When_FallbackColor_Set_UITests_Windows_UI_Xaml_Media_BrushesTests_RevealBrush_Fallback
    • When_TransformToVisual_ScrollViewer_UITests_Shared_Windows_UI_Xaml_UIElementTests_TransformToVisual_ScrollViewer
  • wasm-automated-net5.0-RuntimeTests: 0 changed over 1

@MartinZikmund
Copy link
Member Author

@robloo I agree that it would be preferrable if the specific behavior were encapsulated within the LinearGradientBrush itself, but it is problematic especially on WASM where it is not easily possible to have linear gradient border with corner radius. It would be doable if we had some kind of "virtual visual tree" concept where controls could wrap themselves in some internal wrapper providing additional behavior, but that is currently not possible and would require a major rewrite of some of the internals. So the existing solution was using a Border to render the fake border, and the new solution will use a custom control, which will be "smarter" - meaning it will only apply when needed and only on platforms which don't support gradient borders yet. When we find a better solution, we can start removing the platforms which don't need this workaround.

@MartinZikmund MartinZikmund force-pushed the dev/mazi/faux-linear-gradient-border branch from ae24ea1 to d48e1c1 Compare December 17, 2021 12:54
@nventive-devops
Copy link
Contributor

The build 38809 found UI Test snapshots differences: android-28-net6: 0, android-28-xamarin: 23, android-28-xamarin-Snap: 18, ios: 26, ios-Snap: 48, skia-gtk-screenshots: 165, wasm: 17, wasm-automated-net5.0-Benchmarks: 0, wasm-automated-net5.0-Default: 11, wasm-automated-net5.0-RuntimeTests: 0

Details
  • android-28-net6: 0 changed over 0

  • android-28-xamarin: 23 changed over 817

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ComboBoxTests_Fullscreen_Popup_Generic_Opened
    • ComboBox_Dropdown_Background_ComboBox_open
    • CommandTest_UITests_Microsoft_UI_Xaml_Controls_SplitButtonTests_SplitButtonPage
    • ComboBoxTests_Fullscreen_Popup_Generic_Closed
    • CommandBar_LongTitle_Validation_CommandBar_-_LongTitle_-_4_-_Orientation_Landscape
    • FocusManager_GetFocusedElement_ComboBoxItem_Validation_FocusManager_-_GetFocusedElement_-_ComboBoxItem_-_2_-_After_Selection
    • FocusManager_GetFocusedElement_ComboBox_LostFocus_Validation_FocusManager_-_LostFocus_-_ComboBox_-_2_-_Click_outside
    • FocusManager_GetFocusedElement_TextBoxMultiLine_Validation_FocusManager_-_GetFocusedElement_-_TextBoxMultiLine_-_2_-_After_Selection
    • FocusManager_GetFocusedElement_TextBoxSingleLine_LostFocus_Validation_Uno_UI_Samples_Content_UITests_FocusTests_FocusManager_GetFocus_Automated
    • FocusManager_GetFocusedElement_ToggleButton_LostFocus_Validation_Uno_UI_Samples_Content_UITests_FocusTests_FocusManager_GetFocus_Automated
    • FocusManager_GetFocusedElement_ComboBoxItem_LostFocus_Validation_FocusManager_-_LostFocus_-_ComboBoxItem_-_2_-_Click_outside
    • FocusManager_GetFocusedElement_ComboBox_Validation_FocusManager_-_GetFocusedElement_-_ComboBox_-_2_-_After_Selection
    • PopupWithOverlay_After
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • TimePicker_Header_UITests_Windows_UI_Xaml_Controls_TimePicker_TimePicker_Header
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • WebView_NavigateToAnchor_navigate_to_anchor
    • TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • When_Click_Outside_Dialog_Expect_No_Dismiss_AfterClicking
  • android-28-xamarin-Snap: 18 changed over 933

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ComboBox_UITests_Shared_Windows_UI_Xaml_Controls_ComboBox_ComboBox_DropDownPlacement_UITests_Shared_Windows_UI_Xaml_Controls_ComboBox_ComboBox_DropDownPlacement
    • Default_UITests_Windows_UI_Xaml_DragAndDrop_DragDrop_TestPage_UITests_Windows_UI_Xaml_DragAndDrop_DragDrop_TestPage
    • Image_UniformToFill100x100_Uno_UI_Samples_UITests_ImageTestsControl_UniformToFill100x100
    • Map_MapControl_Uno_UI_Samples_Content_UITests_MapControl_MapControl
    • MediaPlayerElement_Using_mov_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Mov_Extension
    • NavigationView_FluentStyle_NavigationViewSample_SamplesApp_Samples_Microsoft_UI_Xaml_Controls_NavigationViewTests_FluentStyle_FluentStyle_NavigationViewSample
    • NavigationView_MUXControlsTestApp_NavigationViewPage_MUXControlsTestApp_NavigationViewPage
    • Progress_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_CustomSources_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_CustomSources
    • Progress_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • Progress_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • Progress_UITests_Microsoft_UI_Xaml_Controls_ProgressBar_WinUIProgressBarSimple_UITests_Microsoft_UI_Xaml_Controls_ProgressBar_WinUIProgressBarSimple
    • Progress_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRingPage_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRingPage
    • TextBox_Uno_UI_Samples_Content_UITests_TextBoxControl_PasswordBox_Reveal_Scroll_Uno_UI_Samples_Content_UITests_TextBoxControl_PasswordBox_Reveal_Scroll
    • TimePicker_UITests_Windows_UI_Xaml_Controls_TimePicker_TimePicker_Header_UITests_Windows_UI_Xaml_Controls_TimePicker_TimePicker_Header
    • Time_Picker_TimePicker_TimePickerFlyoutStyle_UITests_Windows_UI_Xaml_Controls_TimePicker_TimePicker_TimePickerFlyoutStyle
    • WebView_WebView_Mailto_Uno_UI_Samples_Content_UITests_WebView_WebView_Mailto
    • WebView_WebView_WithHeaders_Uno_UI_Samples_Content_UITests_WebView_WebView_WithHeaders
    • UIElement_TransformToVisual_Transform_UITests_Shared_Windows_UI_Xaml_UIElementTests_TransformToVisual_Transform
  • ios: 26 changed over 288

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • DatePicker_Flyout_DatePicker_-_Flyout
    • Keyboard_Textbox_InsideScrollViewer_Validation_0_-_Remove_Focus_on_normalTextBox
    • Keyboard_Textbox_InsideScrollViewer_Validation_4_-_Remove_Focus_on_multilineTextBox
    • Keyboard_Textbox_NoScrollViewer_Validation_2_-_Remove_Focus_on_placeholderTextTextBox
    • Keyboard_Textbox_NoScrollViewer_Validation_5_-_Remove_Focus_on_numberTextBox
    • Large_Image_With_Margin_Ready
    • Large_Image_With_Margin_UITests_Windows_UI_Xaml_Controls_ImageTests_Image_Margin_Large
    • ListView_ExpandableItemLarge_ExpandHeaderWithMultipleItems_Validation_Expanded_State
    • ListView_ExpandableItemLarge_ExpandHeaderWithMultipleItems_Validation_Initial_State
    • ListView_ExpandableItemLarge_ExpandHeaderWithMultipleItems_Validation_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListView_Expandable_Item_Large
    • ListView_ExpandableItemLarge_ExpandHeaderWithMultipleItems_Validation_Collapsed_State
    • ListView_ExpandableItemLarge_ExpandHeaderWithSingleItem_Validation_Collapsed_State
    • ListView_ExpandableItemLarge_ExpandHeaderWithSingleItem_Validation_Expanded_State
    • ListView_ExpandableItemLarge_ExpandHeader_Validation_Expanded_State
    • ListView_ExpandableItemLarge_ExpandHeaderWithSingleItem_Validation_Initial_State
    • ListView_ExpandableItemLarge_ExpandHeader_Validation_Initial_State
    • ListView_ExpandableItemLarge_ExpandHeaderWithSingleItem_Validation_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListView_Expandable_Item_Large
    • ListView_ExpandableItemLarge_ExpandHeader_Validation_SamplesApp_Windows_UI_Xaml_Controls_ListView_ListView_Expandable_Item_Large
    • ListView_ExpandableItemLarge_ExpandHeader_Validation_Collapsed_State
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
  • ios-Snap: 48 changed over 924

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Button_Hyperlink_Button_Uno_UI_Samples_Content_UITests_ButtonTestsControl_Hyperlink_Button
    • ContentControlTestsControl_ContentControl_SetNull_Uno_UI_Samples_Content_UITests_ContentControlTestsControl_ContentControl_SetNull
    • ContentPresenter_ContentPresenter_Background_Uno_UI_Samples_Content_UITests_ContentPresenter_ContentPresenter_Background
    • Default_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_CornerRadius_UITests_Windows_UI_Xaml_Controls_TextBox_TextBox_CornerRadius
    • Expander_WinUIExpanderPage_UITests_Shared_Microsoft_UI_Xaml_Controls_ExpanderTests_WinUIExpanderPage
    • ContentControlTestsControl_ContentControl_MultiLevelInheritance_Uno_UI_Samples_Content_UITests_ContentControlTestsControl_ContentControl_MultiLevelInheritance
    • ContentControlTestsControl_ContentControl_Nested_TemplatedParent_Uno_UI_Samples_Content_UITests_ContentControlTestsControl_ContentControl_Nested_TemplatedParent
    • ContentPresenter_ContentPresenter_TextProperties_Uno_UI_Samples_Content_UITests_ContentPresenter_ContentPresenter_TextProperties
    • Flyout_Flyout_ToggleMenu_UITests_Shared_Windows_UI_Xaml_Controls_Flyout_Flyout_ToggleMenu
    • ImageBrushTestControl_ImageBrushWithRotateTransform_Uno_UI_Samples_UITests_ImageBrushTestControl_ImageBrushWithRotateTransform
    • Image_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Vertical_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Algmnt_Inf_Vertical
    • Image_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Alignment_SizeOnControl_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_Stretch_Alignment_SizeOnControl
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Uno_UI_Samples_UITests_Image_Image_Stretch
    • Image_Uno_UI_Samples_UITests_ImageTestsControl_ImageUniformWithinScrollViewer_Uno_UI_Samples_UITests_ImageTestsControl_ImageUniformWithinScrollViewer
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Equal_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Equal
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Smaller_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Smaller
    • Image_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Taller_Uno_UI_Samples_UITests_Image_Image_Stretch_Alignment_Taller
    • MediaPlayerElement_MediaPlayerElement_Stretch_Fill_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Stretch_Fill
    • MediaPlayerElement_Mini_player_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Minimal
    • MediaPlayerElement_Original_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Original
  • skia-gtk-screenshots: 165 changed over 980

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Animations-SetTargetProperty
    • AutoSuggestBox-AutoSuggestBox_Icons
    • BrushesTests-DynamicBrushes_On_Shapes
    • Button-Buttons
    • Button-Buttons_Native
    • Button-CheckBox_Button
    • ColorPicker-ColorPickerSample
    • ColorPicker-WinUIColorPickerPage
    • CommandBar-CommandBar_With_Long_Sentences
    • CommandBar-Long Title
    • CommandBar-Native
    • DropDownButton-MUX Page
    • FrameworkElement-LoadEvents
    • Gesture recognizer-Manipulation_Basics
    • Image-Image_Formats
    • Image-Image_Stretch_Algmnt_Inf_Vertical
    • Image-Image_Stretch_Alignment_Bigger
    • Image-Image_Stretch_Alignment_Equal
    • Image-Image_Stretch_Alignment_Smaller
    • Image-Image_Stretch_Alignment_Taller
  • wasm: 17 changed over 936

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • SamplesApp.Samples.Microsoft_UI_Xaml_Controls.NavigationViewTests.FluentStyle.FluentStyle_NavigationViewSample
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ListView.ListView_IsSelected
    • SamplesApp.Wasm.Windows_UI_Xaml_Media.Transform.TransformToVisual_Translate2d
    • UITests.Microsoft_UI_Xaml_Controls.ColorPickerTests.ColorPickerSample
    • UITests.Microsoft_UI_Xaml_Controls.ProgressRing.WinUIProgressRingPage
    • UITests.Microsoft_UI_Xaml_Controls.ProgressRing.WinUIProgressRing_Features
    • UITests.Shared.Windows_UI_Xaml_Automation.AutomationProperties_Name
    • UITests.Shared.Windows_UI_Xaml_Controls.ImageTests.Image_Stretch_Algmnt_Inf_Vertical
    • UITests.Uno_Web.Http.CookieManagerTests
    • UITests.Windows_UI_Xaml.DragAndDrop.DragDrop_TestPage
    • UITests.Windows_UI_Xaml_Controls.LoopingSelectorTests.LoopingSelector_Short
    • UITests.Windows_UI_Xaml_Shapes.Offscreen_Shapes
    • Uno.UI.Samples.Content.UITests.Transform.Image_With_RotateTransform
    • Uno.UI.Samples.Samples.Shared.Content.UITests.ImageBrushInList
    • Uno.UI.Samples.UITests.Image.Image_Stretch_Alignment_Bigger
    • Uno.UI.Samples.UITests.Image.Image_Stretch_Alignment_Equal
    • Uno.UI.Samples.UITests.ImageBrushTestControl.Ellipse
  • wasm-automated-net5.0-Benchmarks: 0 changed over 1

  • wasm-automated-net5.0-Default: 11 changed over 832

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ImageStretch_None_Uno_UI_Samples_UITests_ImageTestsControl_Image_Stretch_None
    • ListView_Weird_Measure_During_Arrange_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_Weird_Measure
    • Screenshots_Image_Stretch_Alignment_SizeOnControl_Mode-0
    • Late_With_Fixed_Dimensions_UITests_Windows_UI_Xaml_Controls_ImageTests_ImageWithLateSourceFixedDimensions
    • Screenshots_Image_Stretch_Algmnt_Inf_Horizontal_Mode-0
    • ScrollViewer_Fluent_ScrollBar_Appears_No_scroll_indicators
    • ScrollViewer_Fluent_ScrollBar_Appears_Scroll_indicators_visible
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • Validate_Offscreen_Shapes_UITests_Windows_UI_Xaml_Shapes_Offscreen_Shapes
    • When_TransformToVisual_ScrollViewer_UITests_Shared_Windows_UI_Xaml_UIElementTests_TransformToVisual_ScrollViewer
  • wasm-automated-net5.0-RuntimeTests: 0 changed over 1

@MartinZikmund MartinZikmund self-assigned this Dec 20, 2021
@MartinZikmund MartinZikmund changed the title [WIP] feat: FauxGradientBottomBorder control feat: FauxGradientBottomBorder control Dec 23, 2021
@MartinZikmund MartinZikmund marked this pull request as ready for review December 23, 2021 12:38
@MartinZikmund MartinZikmund requested a review from a team December 23, 2021 12:38
@jeromelaban jeromelaban marked this pull request as draft January 7, 2022 13:32
@MartinZikmund MartinZikmund marked this pull request as ready for review January 10, 2022 16:33
src/Uno.UI/Uno.UI.csproj Outdated Show resolved Hide resolved
@MartinZikmund MartinZikmund force-pushed the dev/mazi/faux-linear-gradient-border branch from 6e70b47 to 3687dfb Compare February 8, 2022 13:55
@MartinZikmund MartinZikmund force-pushed the dev/mazi/faux-linear-gradient-border branch from 268e4c8 to 2a65cbb Compare February 8, 2022 16:27
@MartinZikmund MartinZikmund changed the title feat: FauxGradientBottomBorder control feat: FauxGradientBorderPresenter control Feb 9, 2022
@MartinZikmund
Copy link
Member Author

@jeromelaban @carldebilly I noticed the _backgroundSubscription (and now also _borderSubscription in BorderLayoutRenderer is disposed only when a new Brush is set, but we never dispose it when the element unloads. Can this leak? I am thinking a scenario where the element subscribes to changes of a built-in SolidColorBrush from Application.Resources and then gets unloaded - it feels like it could then be held in memory by the brush (as it registers a callback when Color or Opacity changes). Does it sound plausible? I will try to set up some leak test if yes.

@jeromelaban
Copy link
Member

Definitely sounds plausible indeed.

@nventive-devops
Copy link
Contributor

The build 40684 found UI Test snapshots differences: android-28-xamarin: 29, android-28-xamarin-Snap: 17, ios: 46, ios-Snap: 106, skia-gtk-screenshots: 173, wasm: 15, wasm-automated-net5.0-Benchmarks: 0, wasm-automated-net5.0-Default: 8, wasm-automated-net5.0-RuntimeTests: 0

Details
  • android-28-xamarin: 29 changed over 834

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ComboBoxTests_Fullscreen_Popup_Generic_Closed
    • ComboBoxTests_Fullscreen_Popup_Generic_Opened
    • ComboBox_Dropdown_Background_ComboBox_open
    • CommandBar_LongTitle_Validation_CommandBar_-_LongTitle_-_3_-_Orientation_Portrait
    • CommandTest_UITests_Microsoft_UI_Xaml_Controls_SplitButtonTests_SplitButtonPage
    • DismissablaPopups_ForwardOrder_Validation_UITests_Shared_Windows_UI_Xaml_Controls_Popup_Popup_LightDismiss
    • FocusManager_GetFocusedElement_ComboBoxItem_LostFocus_Validation_FocusManager_-_LostFocus_-_ComboBoxItem_-_2_-_Click_outside
    • FocusManager_GetFocusedElement_ComboBoxItem_Validation_FocusManager_-_GetFocusedElement_-_ComboBoxItem_-_2_-_After_Selection
    • FocusManager_GetFocusedElement_ComboBox_LostFocus_Validation_FocusManager_-_LostFocus_-_ComboBox_-_2_-_Click_outside
    • FocusManager_GetFocusedElement_ComboBox_Validation_FocusManager_-_GetFocusedElement_-_ComboBox_-_2_-_After_Selection
    • FocusManager_GetFocusedElement_TextBlock_Validation_FocusManager_-_GetFocusedElement_-_TextBlock_-_1_-_Initial_State
    • FocusManager_GetFocusedElement_TextBlock_Validation_FocusManager_-_GetFocusedElement_-_TextBlock_-_2_-_After_Selection
    • FocusManager_GetFocusedElement_TextBlock_Validation_Uno_UI_Samples_Content_UITests_FocusTests_FocusManager_GetFocus_Automated
    • FocusManager_GetFocusedElement_TextBoxMultiLine_Validation_FocusManager_-_GetFocusedElement_-_TextBoxMultiLine_-_2_-_After_Selection
    • FocusManager_GetFocusedElement_TextBoxSingleLine_Validation_FocusManager_-_GetFocusedElement_-_TextBoxSingleLine_-_2_-_After_Selection
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • PopupWithOverlay_After
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
  • android-28-xamarin-Snap: 17 changed over 955

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • ComboBox_UITests_Shared_Windows_UI_Xaml_Controls_ComboBox_ComboBox_DropDownPlacement_UITests_Shared_Windows_UI_Xaml_Controls_ComboBox_ComboBox_DropDownPlacement
    • ContentControlTestsControl_ContentControl_Nested_TemplatedParent_Uno_UI_Samples_Content_UITests_ContentControlTestsControl_ContentControl_Nested_TemplatedParent
    • DefaultCategory_Grid_DataBound_ColumnRow_Definitions_Uno_UI_Samples_Content_UITests_GridTestsControl_Grid_DataBound_ColumnRow_Definitions
    • Default_UITests_Windows_UI_Xaml_DragAndDrop_DragDrop_TestPage_UITests_Windows_UI_Xaml_DragAndDrop_DragDrop_TestPage
    • Default_Uno_UI_Samples_UITests_Image_Image_UseTargetSize_Uno_UI_Samples_UITests_Image_Image_UseTargetSize
    • MediaPlayerElement_Original_UITests_Shared_Windows_UI_Xaml_Controls_MediaPlayerElement_MediaPlayerElement_Original
    • Progress_UITests_Microsoft_UI_Xaml_Controls_ProgressBar_WinUIProgressBarSimple_UITests_Microsoft_UI_Xaml_Controls_ProgressBar_WinUIProgressBarSimple
    • Progress_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRingPage_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRingPage
    • Progress_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_CustomSources_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_CustomSources
    • Progress_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • Progress_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • TextBox_Uno_UI_Samples_Content_UITests_TextBoxControl_PasswordBox_Reveal_Scroll_Uno_UI_Samples_Content_UITests_TextBoxControl_PasswordBox_Reveal_Scroll
    • TimePicker_UITests_Windows_UI_Xaml_Controls_TimePicker_TimePicker_Header_UITests_Windows_UI_Xaml_Controls_TimePicker_TimePicker_Header
    • Time_Picker_TimePicker_TimePickerFlyoutStyle_UITests_Windows_UI_Xaml_Controls_TimePicker_TimePicker_TimePickerFlyoutStyle
    • UIElement_TransformToVisual_Transform_UITests_Shared_Windows_UI_Xaml_UIElementTests_TransformToVisual_Transform
    • WebView_WebView_Mailto_Uno_UI_Samples_Content_UITests_WebView_WebView_Mailto
    • Windows_Devices_Geolocator_UITests_Shared_Windows_Devices_GeolocatorTests
  • ios: 46 changed over 269

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • BasicExpressionTest_UITests_Microsoft_UI_Xaml_Controls_NumberBoxTests_NumberBox_ExpressionTest
    • ContentPresenter_Template_Uno_UI_Samples_Content_UITests_ContentPresenter_ContentPresenter_Template
    • Keyboard_Textbox_NoScrollViewer_Validation_2_-_Remove_Focus_on_placeholderTextTextBox
    • Keyboard_Textbox_NoScrollViewer_Validation_4_-_Remove_Focus_on_multilineTextBox
    • Keyboard_Textbox_NoScrollViewer_Validation_5_-_Remove_Focus_on_numberTextBox
    • ListView_ObservableCollection_Creation_Count_Added
    • ListView_ObservableCollection_Creation_Count_Added_above
    • ListView_ObservableCollection_Creation_Count_Removed_above
    • ListView_ObservableCollection_Creation_Count_Scrolled1
    • ListView_ObservableCollection_Unused_Space_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_ObservableCollection_Unused_Space
    • Keyboard_Textbox_NoScrollViewer_Validation_0_-_Remove_Focus_on_normalTextBox
    • Keyboard_Textbox_NoScrollViewer_Validation_1_-_Remove_Focus_on_filledTextBox
    • ListView_ObservableCollection_Creation_Count_Scrolled2
    • ListView_ObservableCollection_Unused_Space_1_item
    • ListView_ObservableCollection_Unused_Space_3_items
    • ProgressRing_IsEnabled_Running_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • ProgressRing_Visibility_Collapsed_UITests_Windows_UI_Xaml_Controls_ProgressRing_WindowsProgressRing_GH1220
    • Screenshots_Image_Stretch_Algmnt_Inf_Vertical_Mode-1
    • Screenshots_Image_Stretch_Algmnt_Inf_Vertical_Mode-2
    • Screenshots_Image_Stretch_Algmnt_Inf_Vertical_Mode-3
  • ios-Snap: 106 changed over 946

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Automation_UITests_Shared_Windows_UI_Xaml_Automation_AutomationProperties_Name_UITests_Shared_Windows_UI_Xaml_Automation_AutomationProperties_Name
    • Border_Border_Simple_with_non_Uniform_Thickness_Uno_UI_Samples_UITests_BorderTestsControl_Border_Simple_with_non_Uniform_Thickness
    • Clipping_SamplesApp_Windows_UI_Xaml_Clipping_DoubleAnimationClipping_SamplesApp_Windows_UI_Xaml_Clipping_DoubleAnimationClipping
    • Animations_DoubleAnimation_BeginTime_Uno_UI_Samples_Content_UITests_Animations_DoubleAnimation_BeginTime
    • Animations_DoubleAnimation_TranslateX_GenericApp_Views_Content_UITests_Animations_DoubleAnimation_TranslateX
    • Border_AutoBorderStretchwithtopmargin_Uno_UI_Samples_UITests_BorderTestsControl_AutoBorderStretchwithtopmargin
    • Clipping_SamplesApp_Windows_UI_Xaml_Clipping_ButtonClippingTestsControl_SamplesApp_Windows_UI_Xaml_Clipping_ButtonClippingTestsControl
    • ComboBox_ComboBox_Picker_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ComboBox_ComboBox_Picker
    • ComboBox_ComboBox_Popover_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ComboBox_ComboBox_Popover
    • ContentControlTestsControl_ContentControl_WithPadding_Uno_UI_Samples_Content_UITests_ContentControlTestsControl_ContentControl_WithPadding
    • Default_UITests_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_LayoutAlignment_UITests_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_LayoutAlignment
    • Default_UITests_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_TextTrimming_UITests_Windows_UI_Xaml_Controls_TextBlockControl_TextBlock_TextTrimming
    • Default_UITests_Windows_UI_Xaml_Media_BrushesTests_SolidColorBrush_Color_Changed_UITests_Windows_UI_Xaml_Media_BrushesTests_SolidColorBrush_Color_Changed
    • ContentControlTestsControl_ContentControl_Nested_TemplatedParent_Uno_UI_Samples_Content_UITests_ContentControlTestsControl_ContentControl_Nested_TemplatedParent
    • ContentControlTestsControl_ContentControl_SetNull_Uno_UI_Samples_Content_UITests_ContentControlTestsControl_ContentControl_SetNull
    • Date_Picking_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarDatePicker_Basics_UITests_Windows_UI_Xaml_Controls_CalendarView_CalendarDatePicker_Basics
    • Default_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_Margin_On_Container_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_Margin_On_Container
    • Default_UITests_Shared_Windows_UI_Xaml_Controls_Popup_Popup_Overlay_On_UITests_Shared_Windows_UI_Xaml_Controls_Popup_Popup_Overlay_On
    • Default_UITests_Windows_UI_Xaml_Controls_DatePicker_DatePicker_VisualStates_UITests_Windows_UI_Xaml_Controls_DatePicker_DatePicker_VisualStates
    • Default_UITests_Windows_UI_Xaml_Controls_GridTestsControl_Grid_def_MinMaxValues_UITests_Windows_UI_Xaml_Controls_GridTestsControl_Grid_def_MinMaxValues
  • skia-gtk-screenshots: 173 changed over 1006

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • CommandBar-Native
    • IconElement-ImageIconPage
    • Image-BitmapImage_vs_SvgImageSource
    • Image-HitTest_Image
    • Image-ImagesInlineInFlipView
    • Image-ImageSourceStream
    • Image-ImageWithLateSourceUniformToFill
    • Image-Image_Fixed_Size_Alignment
    • Image-Image_Formats
    • Image-Image_Margin
    • Image-Image_Stretch_Algmnt_Inf_Vertical
    • Image-Image_Stretch_Alignment_Bigger
    • Image-Image_Stretch_Alignment_Equal
    • Image-Image_Stretch_Alignment_SizeOnControl
    • Image-Image_Stretch_Alignment_Smaller
    • Image-Image_Stretch_Alignment_Taller
    • Image-Image_Stretch_Alignment_Wider
    • Image-Image_Stretch_Full_Taller
    • Image-Image_Stretch_Full_Wider
    • Image-Image_Stretch_None
  • wasm: 15 changed over 955

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • SamplesApp.Samples.Microsoft_UI_Xaml_Controls.NavigationViewTests.FluentStyle.FluentStyle_NavigationViewSample
    • SamplesApp.Wasm.Windows_UI_Xaml_Controls.ListView.ListView_IsSelected
    • UITests.Microsoft_UI_Xaml_Controls.ProgressRing.WinUIProgressRingPage
    • UITests.Microsoft_UI_Xaml_Controls.ProgressRing.WinUIProgressRing_Features
    • UITests.Shared.Microsoft_UI_Xaml_Controls.ColorPickerTests.WinUIColorPickerPage
    • UITests.Shared.Windows_UI_Xaml_Controls.ImageTests.Image_Stretch_Algmnt_Inf_Horizontal
    • UITests.Shared.Windows_UI_Xaml_Controls.ImageTests.Image_Stretch_Algmnt_Inf_Vertical
    • UITests.Shared.Windows_UI_Xaml_Controls.ImageTests.Image_Stretch_Alignment_SizeOnControl
    • UITests.Windows_UI_Xaml_Controls.BorderTests.Border_CornerRadius_Gradient
    • UITests.Windows_UI_Xaml_Media.GradientBrushTests.GradientsPage
    • Uno.UI.Samples.UITests.Image.Image_Margin
    • Uno.UI.Samples.UITests.Image.Image_Stretch_Alignment_Bigger
    • Uno.UI.Samples.UITests.Image.Image_Stretch_Alignment_Smaller
    • Uno.UI.Samples.UITests.Image.Image_Stretch_Alignment_Wider
    • Uno.UI.Samples.UITests.ImageBrushTestControl.Ellipse
  • wasm-automated-net5.0-Benchmarks: 0 changed over 1

  • wasm-automated-net5.0-Default: 8 changed over 854

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Border_CornerRadius_GradientBrush_UITests_Windows_UI_Xaml_Controls_BorderTests_Border_CornerRadius_Gradient
    • Border_CornerRadius_GradientBrush_Screenshot
    • ImageStretch_None_Uno_UI_Samples_UITests_ImageTestsControl_Image_Stretch_None
    • ScrollViewer_Fluent_ScrollBar_Appears_No_scroll_indicators
    • ScrollViewer_Fluent_ScrollBar_Appears_Scroll_indicators_visible
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • TestProgressRing_InitialState_UITests_Microsoft_UI_Xaml_Controls_ProgressRing_WinUIProgressRing_Features
    • Validate_Offscreen_Shapes_UITests_Windows_UI_Xaml_Shapes_Offscreen_Shapes
  • wasm-automated-net5.0-RuntimeTests: 0 changed over 1

@MartinZikmund MartinZikmund force-pushed the dev/mazi/faux-linear-gradient-border branch from ce6fe30 to b5afbf2 Compare February 16, 2022 09:23
@MartinZikmund MartinZikmund force-pushed the dev/mazi/faux-linear-gradient-border branch from a7e3111 to acf61f2 Compare May 10, 2023 08:34
@MartinZikmund MartinZikmund changed the base branch from master to feature/breaking-changes May 10, 2023 08:34
@github-actions github-actions bot added area/build Categorizes an issue or PR as relevant to build infrastructure area/code-generation Categorizes an issue or PR as relevant to code generation area/solution-templates Categorizes an issue or PR as relevant to the solution template kind/documentation and removed platform/macos 🍏 Categorizes an issue or PR as relevant to the macOS platform labels May 10, 2023
@jeromelaban jeromelaban deleted the branch feature/breaking-changes June 9, 2023 17:38
@jeromelaban jeromelaban closed this Jun 9, 2023
@MartinZikmund MartinZikmund mentioned this pull request Jun 9, 2023
6 tasks
@mergify
Copy link
Contributor

mergify bot commented Jun 9, 2023

⚠️ The sha of the head commit of this PR conflicts with #12593. Mergify cannot evaluate rules on this PR. ⚠️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/automation Categorizes an issue or PR as relevant to project automation area/build Categorizes an issue or PR as relevant to build infrastructure area/code-generation Categorizes an issue or PR as relevant to code generation area/skia ✏️ Categorizes an issue or PR as relevant to Skia area/solution-templates Categorizes an issue or PR as relevant to the solution template kind/documentation platform/android 🤖 Categorizes an issue or PR as relevant to the Android platform platform/ios 🍎 Categorizes an issue or PR as relevant to the iOS platform platform/wasm 🌐 Categorizes an issue or PR as relevant to the WebAssembly platform
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Fluent controls don't respect BorderThickness set to 0 Fake bottom gradient should respect BorderThickness
7 participants