Skip to content

kyuranger/Avalonia.SVirtualizingWrapPanel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Avalonia.SVirtualizingWrapPanel Project Description

Project Introduction

This project develops a custom virtualizing layout control for the Avalonia UI framework, named Avalonia.SVirtualizingWrapPanel. It should be noted that, due to the upcoming official VirtualizingWrapPanel from the Avalonia Accelerate program, the prefix "SVirtualizingWrapPanel" is used to avoid naming conflicts.

To meet the needs of my personal project, I further implemented VirtualizingUniformGrid and VirtualizingStackPanel, and added waterfall loading functionality to all of them.

Development Background

As an amateur programming enthusiast, I developed this control to meet the needs of a virtualizing wrap layout in my personal projects. In the absence of existing solutions, I implemented this layout logic independently based on the design ideas of Avalonia's VirtualizingStackPanel (without directly referencing the WrapPanel source code). It should be emphasized:
  • While the control operates stably, there are inevitable gaps in performance optimization and code quality compared to implementations by professional teams.
  • If your project has strict performance requirements, it is recommended to wait for the official VirtualizingWrapPanel release.

Usage Instructions

Currently, the project provides a source-code-level integration solution (simply copy the SVirtualizingWrapPanel class into your project to use it), and no NuGet package has been released yet. Please note:
  • The GetIrregularSnapPoints and GetRegularSnapPoints methods are not yet implemented.
  • Maintenance and updates will be driven by the actual needs of my personal projects.

Open Source Statement

This project is fully open source under the MIT license, and we welcome:
  • Secondary development and optimization through forking.
  • Submitting issues to report problems.

Due to limited personal time and energy, I cannot provide professional-level maintenance support, but I promise to continuously fix significant issues discovered during my own use. I hope this project can serve as a temporary solution for community developers, and I appreciate your understanding and support.

Demonstration effect:


Avalonia.SVirtualizingWrapPanel 项目描述

项目介绍

本项目为 Avalonia UI 框架开发了一款自定义虚拟化布局控件,命名为 Avalonia.SVirtualizingWrapPanel。需要说明的是,由于 Avalonia Accelerate 计划未来推出官方的 VirtualizingWrapPanel,为避免命名冲突,特此采用 "SVirtualizingWrapPanel" 作为前缀标识。

开发背景

作为一名业余编程爱好者,我开发此控件的初衷是为了满足个人项目中虚拟化换行布局的需求。在未找到现有实现方案的情况下,我基于 Avalonia 的 VirtualizingStackPanel 设计思路,独立实现了这套布局逻辑(未直接参考 WrapPanel 源码)。需要特别说明:
  • 该控件虽能稳定运行,但在性能优化和代码质量方面与专业团队的实现必然存在差距
  • 若您的项目对性能有严格要求,建议等待官方 VirtualizingWrapPanel 的发布

使用说明

当前提供源码级集成方案(直接复制 SVirtualizingWrapPanel 类到项目即可使用),暂未发布 NuGet 包。需注意:
  • GetIrregularSnapPoints 和 GetRegularSnapPoints 方法暂未实现
  • 维护更新将基于个人项目中的实际使用需求进行

开源声明

本项目采用 MIT 协议完全开源,欢迎:
  • 通过 Fork 进行二次开发与优化
  • 提交 Issue 反馈问题

受限于个人时间精力,我无法提供专业级的维护支持,但承诺会持续修复个人使用过程中发现的重大问题。期待这个项目能为社区开发者提供临时解决方案,也感谢您的理解与支持。

About

Unofficial VirtualizingWrapPanel used by Avaloina

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages