microsoft / microsoft/microsoft-ui-xaml
Layout Cycle Crash in ListView with KeepLastItemInView
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 8.4k
- Forks
- 942
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 105
Description
### Describe the bug
I have a ListView displaying chat messages.
Using this items panel
```
```
When scrolling down automatically this way, users get sometimes a LayoutCycleException.
I was able to reproduce one situation where I got this trace:
` ` `
[LayoutCycleTracing] Layout Iteration Countdown: 7. Launching Measure Pass.
[LayoutCycleTracing] "Measure(692.666687xinf)","LayoutCycleCountdown: 7","ClassName: Microsoft.UI.Xaml.Controls.ItemsStackPanel","Instance: 0x00000122A4FB3AC0","TypeIndex: 754"
[LayoutCycleTracing] "Measure(infx486.000000)","LayoutCycleCountdown: 7","ClassName: Microsoft.UI.Xaml.Controls.Grid","Name: VerticalPanningRoot","Instance: 0x00000122AB3B1E00","TypeIndex: 673"
[LayoutCycleTracing] Layout Iteration Countdown: 6. Launching Arrange Pass.
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x488.000000)","LayoutCycleCountdown: 6","ClassName: Microsoft.UI.Xaml.Controls.ListView","Name: listView","Instance: 0x00000122AB41E760","TypeIndex: 809"
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x488.000000)","LayoutCycleCountdown: 6","ClassName: Microsoft.UI.Xaml.Controls.ScrollViewer","Name: ScrollViewer","Instance: 0x00000122AB6CD170","TypeIndex: 798"
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x488.000000)","LayoutCycleCountdown: 6","ClassName: Microsoft.UI.Xaml.Controls.Grid","Instance: 0x00000122AB3A0A00","TypeIndex: 673"
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x488.000000)","LayoutCycleCountdown: 6","ClassName: Microsoft.UI.Xaml.Controls.ScrollContentPresenter","Name: ScrollContentPresenter","Instance: 0x00000122AB3A1200","TypeIndex: 709"
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x1522.666626)","LayoutCycleCountdown: 6","ClassName: Microsoft.UI.Xaml.Controls.ItemsPresenter","Instance: 0x00000122A4FB6470","TypeIndex: 547"
[LayoutCycleTracing] "Arrange(4.000000,47.333332 692.666687x1467.333374)","LayoutCycleCountdown: 6","ClassName: Microsoft.UI.Xaml.Controls.ItemsStackPanel","Instance: 0x00000122A4FB3AC0","TypeIndex: 754"
[LayoutCycleTracing] "LayoutCycleCountdown: 6","ClassName: Microsoft.UI.Xaml.Controls.ItemsStackPanel","Instance: 0x00000122A4FB3AC0","TypeIndex: 754"
[LayoutCycleTracing] "Old ScrollData: Viewport: 700.666687x488.000000, Extent: 700.666687x1522.666626","New ScrollData: Viewport: 700.666687x488.000000, Extent: 700.666687x1522.666626","Offset: 0.000000x1034.105713","IsChildActualSizeUsedAsExtent: 1,1, IsChildActualSizeUpdated: 1,1","LayoutCycleCountdown: 6","ClassName: Microsoft.UI.Xaml.Controls.ScrollContentPresenter","Name: ScrollContentPresenter","Instance: 0x00000122AB3A1200","TypeIndex: 709"
[LayoutCycleTracing] "SetValue(Visibility=0)","LayoutCycleCountdown: 6","ClassName: Microsoft.UI.Xaml.Controls.Primitives.Thumb","Name: VerticalThumb","Instance: 0x00000122AB8DF200","TypeIndex: 718"
[LayoutCycleTracing] "SetValue(Height=156.000000)","LayoutCycleCountdown: 6","ClassName: Microsoft.UI.Xaml.Controls.Primitives.Thumb","Name: VerticalThumb","Instance: 0x00000122AB8DF200","TypeIndex: 718"
[LayoutCycleTracing] "SetValue(Visibility=0)","LayoutCycleCountdown: 6","ClassName: Microsoft.UI.Xaml.Controls.Border","Name: VerticalPanningThumb","Instance: 0x00000122AB3B2000","TypeIndex: 499"
[LayoutCycleTracing] "SetValue(Height=156.000000)","LayoutCycleCountdown: 6","ClassName: Microsoft.UI.Xaml.Controls.Border","Name: VerticalPanningThumb","Instance: 0x00000122AB3B2000","TypeIndex: 499"
[LayoutCycleTracing] "trackLength: 486.000000, repeatButtonsLength=0.000000","minimum: 0.000000, maximum: 1034.666626, value: 1034.105713, viewport: 488.000000","mouseIndicatorSize: 156.000000, touchIndicatorSize: 156.000000","mouseMinSize: 30.000000, touchMinSize: 32.000000, actualSize: 486.000000","LayoutCycleCountdown: 6","ClassName: Microsoft.UI.Xaml.Controls.Primitives.ScrollBar","Name: VerticalScrollBar","Instance: 0x00000122A6DF7E60","TypeIndex: 770"
[LayoutCycleTracing] "SetValue(Height=329.821101)","LayoutCycleCountdown: 6","ClassName: Microsoft.UI.Xaml.Controls.Primitives.RepeatButton","Name: VerticalLargeDecrease","Instance: 0x00000122AB41FA60","TypeIndex: 797"
[LayoutCycleTracing] "SetValue(Margin=0,329.821,0,0)","LayoutCycleCountdown: 6","ClassName: Microsoft.UI.Xaml.Controls.Grid","Name: VerticalPanningRoot","Instance: 0x00000122AB3B1E00","TypeIndex: 673"
[LayoutCycleTracing] "LayoutCycleCountdown: 6","ClassName: Microsoft.UI.Xaml.Controls.Grid","Name: VerticalPanningRoot","Instance: 0x00000122AB3B1E00","TypeIndex: 673"
[LayoutCycleTracing] Layout Iteration Countdown: 5. Launching Measure Pass.
[LayoutCycleTracing] "Measure(692.666687xinf)","LayoutCycleCountdown: 5","ClassName: Microsoft.UI.Xaml.Controls.ItemsStackPanel","Instance: 0x00000122A4FB3AC0","TypeIndex: 754"
[LayoutCycleTracing] "Measure(infx486.000000)","LayoutCycleCountdown: 5","ClassName: Microsoft.UI.Xaml.Controls.Grid","Name: VerticalPanningRoot","Instance: 0x00000122AB3B1E00","TypeIndex: 673"
[LayoutCycleTracing] Layout Iteration Countdown: 4. Launching Arrange Pass.
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x488.000000)","LayoutCycleCountdown: 4","ClassName: Microsoft.UI.Xaml.Controls.ListView","Name: listView","Instance: 0x00000122AB41E760","TypeIndex: 809"
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x488.000000)","LayoutCycleCountdown: 4","ClassName: Microsoft.UI.Xaml.Controls.ScrollViewer","Name: ScrollViewer","Instance: 0x00000122AB6CD170","TypeIndex: 798"
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x488.000000)","LayoutCycleCountdown: 4","ClassName: Microsoft.UI.Xaml.Controls.Grid","Instance: 0x00000122AB3A0A00","TypeIndex: 673"
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x488.000000)","LayoutCycleCountdown: 4","ClassName: Microsoft.UI.Xaml.Controls.ScrollContentPresenter","Name: ScrollContentPresenter","Instance: 0x00000122AB3A1200","TypeIndex: 709"
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x1522.666626)","LayoutCycleCountdown: 4","ClassName: Microsoft.UI.Xaml.Controls.ItemsPresenter","Instance: 0x00000122A4FB6470","TypeIndex: 547"
[LayoutCycleTracing] "Arrange(4.000000,47.333332 692.666687x1467.333374)","LayoutCycleCountdown: 4","ClassName: Microsoft.UI.Xaml.Controls.ItemsStackPanel","Instance: 0x00000122A4FB3AC0","TypeIndex: 754"
[LayoutCycleTracing] "LayoutCycleCountdown: 4","ClassName: Microsoft.UI.Xaml.Controls.ItemsStackPanel","Instance: 0x00000122A4FB3AC0","TypeIndex: 754"
[LayoutCycleTracing] "Old ScrollData: Viewport: 700.666687x488.000000, Extent: 700.666687x1522.666626","New ScrollData: Viewport: 700.666687x488.000000, Extent: 700.666687x1522.666626","Offset: 0.000000x1034.105835","IsChildActualSizeUsedAsExtent: 1,1, IsChildActualSizeUpdated: 1,1","LayoutCycleCountdown: 4","ClassName: Microsoft.UI.Xaml.Controls.ScrollContentPresenter","Name: ScrollContentPresenter","Instance: 0x00000122AB3A1200","TypeIndex: 709"
[LayoutCycleTracing] "SetValue(Visibility=0)","LayoutCycleCountdown: 4","ClassName: Microsoft.UI.Xaml.Controls.Primitives.Thumb","Name: VerticalThumb","Instance: 0x00000122AB8DF200","TypeIndex: 718"
[LayoutCycleTracing] "SetValue(Height=156.000000)","LayoutCycleCountdown: 4","ClassName: Microsoft.UI.Xaml.Controls.Primitives.Thumb","Name: VerticalThumb","Instance: 0x00000122AB8DF200","TypeIndex: 718"
[LayoutCycleTracing] "SetValue(Visibility=0)","LayoutCycleCountdown: 4","ClassName: Microsoft.UI.Xaml.Controls.Border","Name: VerticalPanningThumb","Instance: 0x00000122AB3B2000","TypeIndex: 499"
[LayoutCycleTracing] "SetValue(Height=156.000000)","LayoutCycleCountdown: 4","ClassName: Microsoft.UI.Xaml.Controls.Border","Name: VerticalPanningThumb","Instance: 0x00000122AB3B2000","TypeIndex: 499"
[LayoutCycleTracing] "trackLength: 486.000000, repeatButtonsLength=0.000000","minimum: 0.000000, maximum: 1034.666626, value: 1034.105835, viewport: 488.000000","mouseIndicatorSize: 156.000000, touchIndicatorSize: 156.000000","mouseMinSize: 30.000000, touchMinSize: 32.000000, actualSize: 486.000000","LayoutCycleCountdown: 4","ClassName: Microsoft.UI.Xaml.Controls.Primitives.ScrollBar","Name: VerticalScrollBar","Instance: 0x00000122A6DF7E60","TypeIndex: 770"
[LayoutCycleTracing] "SetValue(Height=329.821139)","LayoutCycleCountdown: 4","ClassName: Microsoft.UI.Xaml.Controls.Primitives.RepeatButton","Name: VerticalLargeDecrease","Instance: 0x00000122AB41FA60","TypeIndex: 797"
[LayoutCycleTracing] "SetValue(Margin=0,329.821,0,0)","LayoutCycleCountdown: 4","ClassName: Microsoft.UI.Xaml.Controls.Grid","Name: VerticalPanningRoot","Instance: 0x00000122AB3B1E00","TypeIndex: 673"
[LayoutCycleTracing] "LayoutCycleCountdown: 4","ClassName: Microsoft.UI.Xaml.Controls.Grid","Name: VerticalPanningRoot","Instance: 0x00000122AB3B1E00","TypeIndex: 673"
[LayoutCycleTracing] Layout Iteration Countdown: 3. Launching Measure Pass.
[LayoutCycleTracing] "Measure(692.666687xinf)","LayoutCycleCountdown: 3","ClassName: Microsoft.UI.Xaml.Controls.ItemsStackPanel","Instance: 0x00000122A4FB3AC0","TypeIndex: 754"
[LayoutCycleTracing] "Measure(infx486.000000)","LayoutCycleCountdown: 3","ClassName: Microsoft.UI.Xaml.Controls.Grid","Name: VerticalPanningRoot","Instance: 0x00000122AB3B1E00","TypeIndex: 673"
[LayoutCycleTracing] Layout Iteration Countdown: 2. Launching Arrange Pass.
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x488.000000)","LayoutCycleCountdown: 2","ClassName: Microsoft.UI.Xaml.Controls.ListView","Name: listView","Instance: 0x00000122AB41E760","TypeIndex: 809"
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x488.000000)","LayoutCycleCountdown: 2","ClassName: Microsoft.UI.Xaml.Controls.ScrollViewer","Name: ScrollViewer","Instance: 0x00000122AB6CD170","TypeIndex: 798"
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x488.000000)","LayoutCycleCountdown: 2","ClassName: Microsoft.UI.Xaml.Controls.Grid","Instance: 0x00000122AB3A0A00","TypeIndex: 673"
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x488.000000)","LayoutCycleCountdown: 2","ClassName: Microsoft.UI.Xaml.Controls.ScrollContentPresenter","Name: ScrollContentPresenter","Instance: 0x00000122AB3A1200","TypeIndex: 709"
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x1522.666626)","LayoutCycleCountdown: 2","ClassName: Microsoft.UI.Xaml.Controls.ItemsPresenter","Instance: 0x00000122A4FB6470","TypeIndex: 547"
[LayoutCycleTracing] "Arrange(4.000000,47.333332 692.666687x1467.333374)","LayoutCycleCountdown: 2","ClassName: Microsoft.UI.Xaml.Controls.ItemsStackPanel","Instance: 0x00000122A4FB3AC0","TypeIndex: 754"
[LayoutCycleTracing] "LayoutCycleCountdown: 2","ClassName: Microsoft.UI.Xaml.Controls.ItemsStackPanel","Instance: 0x00000122A4FB3AC0","TypeIndex: 754"
[LayoutCycleTracing] "Old ScrollData: Viewport: 700.666687x488.000000, Extent: 700.666687x1522.666626","New ScrollData: Viewport: 700.666687x488.000000, Extent: 700.666687x1522.666626","Offset: 0.000000x1034.105957","IsChildActualSizeUsedAsExtent: 1,1, IsChildActualSizeUpdated: 1,1","LayoutCycleCountdown: 2","ClassName: Microsoft.UI.Xaml.Controls.ScrollContentPresenter","Name: ScrollContentPresenter","Instance: 0x00000122AB3A1200","TypeIndex: 709"
[LayoutCycleTracing] "SetValue(Visibility=0)","LayoutCycleCountdown: 2","ClassName: Microsoft.UI.Xaml.Controls.Primitives.Thumb","Name: VerticalThumb","Instance: 0x00000122AB8DF200","TypeIndex: 718"
[LayoutCycleTracing] "SetValue(Height=156.000000)","LayoutCycleCountdown: 2","ClassName: Microsoft.UI.Xaml.Controls.Primitives.Thumb","Name: VerticalThumb","Instance: 0x00000122AB8DF200","TypeIndex: 718"
[LayoutCycleTracing] "SetValue(Visibility=0)","LayoutCycleCountdown: 2","ClassName: Microsoft.UI.Xaml.Controls.Border","Name: VerticalPanningThumb","Instance: 0x00000122AB3B2000","TypeIndex: 499"
[LayoutCycleTracing] "SetValue(Height=156.000000)","LayoutCycleCountdown: 2","ClassName: Microsoft.UI.Xaml.Controls.Border","Name: VerticalPanningThumb","Instance: 0x00000122AB3B2000","TypeIndex: 499"
[LayoutCycleTracing] "trackLength: 486.000000, repeatButtonsLength=0.000000","minimum: 0.000000, maximum: 1034.666626, value: 1034.105957, viewport: 488.000000","mouseIndicatorSize: 156.000000, touchIndicatorSize: 156.000000","mouseMinSize: 30.000000, touchMinSize: 32.000000, actualSize: 486.000000","LayoutCycleCountdown: 2","ClassName: Microsoft.UI.Xaml.Controls.Primitives.ScrollBar","Name: VerticalScrollBar","Instance: 0x00000122A6DF7E60","TypeIndex: 770"
[LayoutCycleTracing] "SetValue(Height=329.821178)","LayoutCycleCountdown: 2","ClassName: Microsoft.UI.Xaml.Controls.Primitives.RepeatButton","Name: VerticalLargeDecrease","Instance: 0x00000122AB41FA60","TypeIndex: 797"
[LayoutCycleTracing] "SetValue(Margin=0,329.821,0,0)","LayoutCycleCountdown: 2","ClassName: Microsoft.UI.Xaml.Controls.Grid","Name: VerticalPanningRoot","Instance: 0x00000122AB3B1E00","TypeIndex: 673"
[LayoutCycleTracing] "LayoutCycleCountdown: 2","ClassName: Microsoft.UI.Xaml.Controls.Grid","Name: VerticalPanningRoot","Instance: 0x00000122AB3B1E00","TypeIndex: 673"
[LayoutCycleTracing] Layout Iteration Countdown: 1. Launching Measure Pass.
[LayoutCycleTracing] "Measure(692.666687xinf)","LayoutCycleCountdown: 1","ClassName: Microsoft.UI.Xaml.Controls.ItemsStackPanel","Instance: 0x00000122A4FB3AC0","TypeIndex: 754"
[LayoutCycleTracing] "Measure(infx486.000000)","LayoutCycleCountdown: 1","ClassName: Microsoft.UI.Xaml.Controls.Grid","Name: VerticalPanningRoot","Instance: 0x00000122AB3B1E00","TypeIndex: 673"
[LayoutCycleTracing] Layout Iteration Countdown: 0. Launching Arrange Pass.
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x488.000000)","LayoutCycleCountdown: 0","ClassName: Microsoft.UI.Xaml.Controls.ListView","Name: listView","Instance: 0x00000122AB41E760","TypeIndex: 809"
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x488.000000)","LayoutCycleCountdown: 0","ClassName: Microsoft.UI.Xaml.Controls.ScrollViewer","Name: ScrollViewer","Instance: 0x00000122AB6CD170","TypeIndex: 798"
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x488.000000)","LayoutCycleCountdown: 0","ClassName: Microsoft.UI.Xaml.Controls.Grid","Instance: 0x00000122AB3A0A00","TypeIndex: 673"
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x488.000000)","LayoutCycleCountdown: 0","ClassName: Microsoft.UI.Xaml.Controls.ScrollContentPresenter","Name: ScrollContentPresenter","Instance: 0x00000122AB3A1200","TypeIndex: 709"
[LayoutCycleTracing] "Arrange(0.000000,0.000000 700.666687x1522.666626)","LayoutCycleCountdown: 0","ClassName: Microsoft.UI.Xaml.Controls.ItemsPresenter","Instance: 0x00000122A4FB6470","TypeIndex: 547"
[LayoutCycleTracing] "Arrange(4.000000,47.333332 692.666687x1467.333374)","LayoutCycleCountdown: 0","ClassName: Microsoft.UI.Xaml.Controls.ItemsStackPanel","Instance: 0x00000122A4FB3AC0","TypeIndex: 754"
[LayoutCycleTracing] "LayoutCycleCountdown: 0","ClassName: Microsoft.UI.Xaml.Controls.ItemsStackPanel","Instance: 0x00000122A4FB3AC0","TypeIndex: 754"
[LayoutCycleTracing] "Old ScrollData: Viewport: 700.666687x488.000000, Extent: 700.666687x1522.666626","New ScrollData: Viewport: 700.666687x488.000000, Extent: 700.666687x1522.666626","Offset: 0.000000x1034.106079","IsChildActualSizeUsedAsExtent: 1,1, IsChildActualSizeUpdated: 1,1","LayoutCycleCountdown: 0","ClassName: Microsoft.UI.Xaml.Controls.ScrollContentPresenter","Name: ScrollContentPresenter","Instance: 0x00000122AB3A1200","TypeIndex: 709"
[LayoutCycleTracing] "SetValue(Visibility=0)","LayoutCycleCountdown: 0","ClassName: Microsoft.UI.Xaml.Controls.Primitives.Thumb","Name: VerticalThumb","Instance: 0x00000122AB8DF200","TypeIndex: 718"
[LayoutCycleTracing] "SetValue(Height=156.000000)","LayoutCycleCountdown: 0","ClassName: Microsoft.UI.Xaml.Controls.Primitives.Thumb","Name: VerticalThumb","Instance: 0x00000122AB8DF200","TypeIndex: 718"
[LayoutCycleTracing] "SetValue(Visibility=0)","LayoutCycleCountdown: 0","ClassName: Microsoft.UI.Xaml.Controls.Border","Name: VerticalPanningThumb","Instance: 0x00000122AB3B2000","TypeIndex: 499"
[LayoutCycleTracing] "SetValue(Height=156.000000)","LayoutCycleCountdown: 0","ClassName: Microsoft.UI.Xaml.Controls.Border","Name: VerticalPanningThumb","Instance: 0x00000122AB3B2000","TypeIndex: 499"
[LayoutCycleTracing] "trackLength: 486.000000, repeatButtonsLength=0.000000","minimum: 0.000000, maximum: 1034.666626, value: 1034.106079, viewport: 488.000000","mouseIndicatorSize: 156.000000, touchIndicatorSize: 156.000000","mouseMinSize: 30.000000, touchMinSize: 32.000000, actualSize: 486.000000","LayoutCycleCountdown: 0","ClassName: Microsoft.UI.Xaml.Controls.Primitives.ScrollBar","Name: VerticalScrollBar","Instance: 0x00000122A6DF7E60","TypeIndex: 770"
[LayoutCycleTracing] "SetValue(Height=329.821217)","LayoutCycleCountdown: 0","ClassName: Microsoft.UI.Xaml.Controls.Primitives.RepeatButton","Name: VerticalLargeDecrease","Instance: 0x00000122AB41FA60","TypeIndex: 797"
[LayoutCycleTracing] "SetValue(Margin=0,329.821,0,0)","LayoutCycleCountdown: 0","ClassName: Microsoft.UI.Xaml.Controls.Grid","Name: VerticalPanningRoot","Instance: 0x00000122AB3B1E00","TypeIndex: 673"
[LayoutCycleTracing] "LayoutCycleCountdown: 0","ClassName: Microsoft.UI.Xaml.Controls.Grid","Name: VerticalPanningRoot","Instance: 0x00000122AB3B1E00","TypeIndex: 673"
Microsoft.UI.Xaml.dll!00007FF9C65588C6: 88000FA8 - AG_E_LAYOUT_CYCLE
Layout Iteration Countdown: 7. Launching Measure Pass.
Layout Iteration Countdown: 6. Launching Arrange Pass.
Layout Iteration Countdown: 5. Launching Measure Pass.
Layout Iteration Countdown: 4. Launching Arrange Pass.
Layout Iteration Countdown: 3. Launching Measure Pass.
Layout Iteration Countdown: 2. Launching Arrange Pass.
Layout Iteration Countdown: 1. Launching Measure Pass.
Layout Iteration Countdown: 0. Launching Arrange Pass.
` ` `
### Steps to reproduce the bug
1. Use a ListView using an ItemsStackPanel as described above
2. For some sizes of the listview and its items, a LayoutCycleException occurs in measuring/arranging the scroll bar (VerticalPanningRoot)
### Expected behavior
No Layout cycle issues
### Screenshots
_No response_
### NuGet package version
2.1.3
### Packaging type
Packaged (MSIX)
### Windows version
Windows 11 version 24H2 LTSC (26100, June Update)
### IDE
Visual Studio 2026 Professional
### Additional context
It looks somewhat similar to this old issue:
https://github.com/microsoft/microsoft-ui-xaml/issues/7768
When I set UseLayoutRounding = False on the scroll bar (By finding it first with the VisualTreeWalker),
I do not longer see the crash, but I am not sure if this will prevent the crash for other sizes.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the reported ListView and ItemsStackPanel configuration using ItemsUpdatingScrollMode="KeepLastItemInView", then reproduce the automatic scrolling scenario while capturing the layout-cycle trace. Trace the interaction among ItemsStackPanel, ScrollViewer, ScrollContentPresenter, and VerticalPanningRoot; done means the repro no longer raises LayoutCycleException during scrolling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop, frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100