microsoft / microsoft/microsoft-ui-xaml

Layout Cycle Crash in ListView with KeepLastItemInView

Open
#11,128 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

needs-triage
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.