-
Notifications
You must be signed in to change notification settings - Fork 81
Description
Approved from Toolkit
See previous work here:
- A CanvasView Control WindowsCommunityToolkit#3716
- A CanvasView Control WindowsCommunityToolkit#854
- Also Related to Experiment 🧪 [Experiment] CanvasLayout - A virtualized canvas for ItemsRepeater #213
Problem Statement (copied from Discussion):
I find myself writing this control over and over in various projects and it's never very good. I'd love a control that would be a sibling to ListView or GridView only it was backed by a 2D Canvas instead of an ItemsStackPanel.
Overview
This experiment adds the following components:
- CanvasView a light-weight
ItemsControlbacked by aCanvasthat allows templating and manipulation of its items (if desired).
Using
You can try it out via the NuGet Packages here:
- UWP: https://dev.azure.com/dotnet/CommunityToolkit/_artifacts/feed/CommunityToolkit-Labs/NuGet/CommunityToolkit.Labs.Uwp.CanvasView
- WinUI 3: https://dev.azure.com/dotnet/CommunityToolkit/_artifacts/feed/CommunityToolkit-Labs/NuGet/CommunityToolkit.Labs.WinUI.CanvasView
Read more about Preview Packages here.
CommunityToolkit members can also try it out with Codespaces.
TO DO
- Investigate WASM support? (see Update version of Uno being used. #174 first)
- Drift (Delta -> switch to Cumulative) (note blocked by WinUI3 - ManipulationStarting Event only occurs on first touch -> e.Container Property is null in following manipulation events microsoft/microsoft-ui-xaml#6847)
- Needs to be able to handle some scenarios, like sizing Canvas Width/Height to the contents position/size so it can better support being hosted in a ScrollViewer for a Canvas area that can work larger than a screen. This means keeping track of items which wasn't part of how this initially worked... 🤔
Implementation Requirements
Not all these items are required to submit a PR. This list is here to help track what is remaining to implement before a technical review and discussion of moving into the main repository can occur.
- Working Prototype
- Feature Complete
- Documentation
- Samples
- Tests
- Community Feedback / Usage Testimonies
Tested Platforms
- UWP
- WinAppSDK / WinUI 3
- Web Assembly (WASM)
- Android
- iOS
- MacOS
- Linux / GTK
Technical Review
These items can sometimes be done ahead of time, but are usually started and completed after all implementation details are finished.
- Accessibility Audit
- API/Naming Review
- Code Quality/Style
- Dependency Review
- Design/Style Review
- Final Approval
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Status