CommunityToolkit / CommunityToolkit/Windows

WrapLayout "collapsing"

Abierto
#690 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

bug components::controls::primitives
Lenguaje dominante
C#
Estrellas
1.1k
Forks
166
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Describe the bug

I have a weird bug that unfortunately mighe be difficult to find. Im using the WinUI-ItemsRepeater with a WrapLayout as "ItemsRepeater.Layout" like this:

          <winui:ItemsRepeater >
              <winui:ItemsRepeater.Layout>
                  <controls:WrapLayout Orientation="Horizontal" VerticalSpacing="1"HorizontalSpacing="1"/>
              </winui:ItemsRepeater.Layout>
              <winui:ItemsRepeater.ItemTemplate>
                  <DataTemplate>

                      [...]

                  </DataTemplate>
              </winui:ItemsRepeater.ItemTemplate>
          </winui:ItemsRepeater>

Now it seems that adding Elements in a long list when the ItemsRepeater is "scrolled down", then it "collapses" and renders the Items wrong. I unfortunately have no other repro than this video:

https://github.com/user-attachments/assets/aa7b6ff4-2ce0-43b9-a892-f55279af9fbf

Whenever it blinks blue, I'm adding a test-element (via right-click). I'm scrolling down while I do this. Once I reach a certain point, adding another element (or basically "modifiying the underlying collection") leads to a collaps of all (!) WrapLayout within that control. I have three of them in here and they all do collapse.

I'm assuming that the renderer crashes for whatever reason. Or the layout calculation gets corrupted. I hope some of you with deeper knowledge of the insights might get a clue what's happening here. Basically all Items in all visible WrapLayouts/ItemsRepeater do not get rendered once after the other but all get rendered at (0,0):

Image

Steps to reproduce
Unfortunately I do not have a repro outside of my app.
Expected behavior

I should be able to add elements as I wish without the layout collapsing.

Screenshots

Image

Code Platform
  • UWP
  • WinAppSDK / WinUI 3
  • Web Assembly (WASM)
  • Android
  • iOS
  • MacOS
  • Linux / GTK
Windows Build Number
  • Windows 10 1809 (Build 17763)
  • Windows 10 1903 (Build 18362)
  • Windows 10 1909 (Build 18363)
  • Windows 10 2004 (Build 19041)
  • Windows 10 20H2 (Build 19042)
  • Windows 10 21H1 (Build 19043)
  • Windows 10 21H2 (Build 19044)
  • Windows 10 22H2 (Build 19045)
  • Windows 11 21H2 (Build 22000)
  • Other (specify)
Other Windows Build number

No response

App minimum and target SDK version
  • Windows 10, version 1809 (Build 17763)
  • Windows 10, version 1903 (Build 18362)
  • Windows 10, version 1909 (Build 18363)
  • Windows 10, version 2004 (Build 19041)
  • Windows 10, version 2104 (Build 20348)
  • Windows 11, version 22H2 (Build 22000)
  • Other (specify)
Other SDK version

No response

Visual Studio Version

2022

Visual Studio Build Number

17.4

Device form factor

Desktop

Additional context

No response

Help us help you

No, I'm unable to contribute a solution.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con el WinAppSDK/WinUI 3 WrapLayout utilizado como ItemsRepeater.Layout y reproduce el fallo desplazándote mientras modificas la colección subyacente. Compara el layout antes y después del colapso, utilizando el vídeo y las capturas de pantalla como referencias del comportamiento. El trabajo estará terminado cuando los elementos visibles de todos los WrapLayouts afectados sigan estando correctamente posicionados después de añadir elementos.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
csharp
Área
desktop, frontend
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
20/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.