Welcome to Avalonia.Samples. This is a collection of minimal samples, which should make it easy for everyone to get started with Avalonia. Each sample is focusing on only one aspect of Avalonia.
If you have feedback, questions or suggestions feel free to contact us via:
Or file a new bug-report or feature request in the Issues
-section.
Every sample can be found in its own sub-folder and can run without any reference to another sample. Nevertheless we have a *.sln
-File which has all projects in one solution, if you are looking for a complete collection of samples.
You can find the list of samples below. The samples are structured in different categories and difficulties. For better search results, each sample is also tagged with some buzz-words.
In every sample folder you will find a README
-File, which describes the sample in detail and, if applicable, has links to further information and documentation.
Each sample is tagged with it’s difficulty. The degree of difficulty describes how much base-knowledge a user should have.
🔘 | Difficulty | Degree of knowledge |
---|---|---|
🐣 |
Beginner |
A Beginner must not have any knowledge of Avalonia. Nevertheless some basic knowledge of |
🐥 |
Easy |
Some very basic knowledge of Avalonia is needed |
🐔 |
Normal |
The user is somewhat experienced with Avalonia |
🐉 |
Hard |
These samples are focusing on non-standard tasks, which most users will not need to know. |
Sample | Difficulty | Buzz-Words |
---|---|---|
🐣 Beginner |
MVVM, Model-View-ViewModel, ReactiveUI, INotifyPropertyChanged, XAML, Binding |
|
🐣 Beginner |
Command, ICommand, CommandParameter, MVVM, ReactiveCommand, async-await |
|
🐥 Easy |
Converter, Binding, MultiBinding, IValueConverter, IMultiValueConverter, MVVM, FuncValueConverter |
|
🐥 Easy |
MVVM, Data-Validation, Exception, Error, Error-Message, Binding |
Sample | Difficulty | Buzz-Words |
---|---|---|
🐔 Normal |
Game, Canvas, Game Loop, MVVM |
|
🐔 Normal |
Graphics, MVVM |
Sample | Difficulty | Buzz-Words |
---|---|---|
🐔 Normal |
DataTemplate, ToString, StringFormat, MVVM, ItemTemplate, ContentTemplate |
|
🐔 Normal |
FuncDataTemplate, DataTemplate, C#, Binding from code |
|
🐔 Normal |
IDataTemplate, DataTemplate, DataTemplateSelector |
Sample | Difficulty | Buzz-Words |
---|---|---|
🐔 Normal |
ViewLocator, Routing, Wizard, Navigation, Page, MVVM |
Sample | Difficulty | Buzz-Words |
---|---|---|
🐔 Normal |
Control, TemplatedControl, custom Control, reusable Control, AvaloniaProperty, StyledProperty, DirectProperty, ReadonlyProperty, Style, ControlTheme |
Sample | Difficulty | Buzz-Words |
---|---|---|
🐔 Normal |
MVVM, Dialog, FileDialogs, TopLevel, Clipboard |
|
🐔 Normal |
MVVM, Dialog, FileDialogs, TopLevel, Clipboard, DialogManager, CommunityToolkit.Mvvm |
Sample | Difficulty | Buzz-Words |
---|---|---|
🐔 Normal |
XUnit, Headless, Automation, UI Testing |
|
🐔 Normal |
NUnit, Headless, Automation, UI Testing |
|
🐉 Hard |
XUnit, Appium, WinAppDriver, Automation, UI Testing |
Sample | Difficulty | Buzz-Words |
---|---|---|
🐥 Easy |
ToDo-List, Complete App, MVVM, CommunityToolkit.MVVM, Source Generator, Styles, Commands |
Is Anything missing? Have you found an error? Have you found an outdated sample? Or do you have a great idea?
Fantastic! Your contribution is welcome.
ℹ️
|
Before you start, make sure you have read the Code of Conduct |
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information see the Contributor Covenant Code of Conduct
If you file a new issue or feature request please fill in the templates available. If you found an issue in an existing sample, please link the sample and if possible the point us to what is wrong.
ℹ️
|
Pull requests may be discussed and probably not every pull request will be merged in the end. If you are not sure, please 🗯 Get in touch with us first. Anyway, every contribution is welcome. |
If you find that in an existing sample, that something is unclear or missing, you can update this sample and file a pull request. Also spelling mistakes or wrong wording can be changed and a pull request can be send.
❗
|
If you change the difficulty or the buzz-words, remember to also update the main page. |
-
Add a new Project to the Solution
src ► Avalonia.Samples ► Avalonia.Samples.sln
-
In the root directory of the new sample add a
ReadMe
-file. We highly suggest to use the template which you can find here:-
AsciiDoc-Template: If you want to provide richer content, we suggest to use the ascii-doc-template.
-
Markdown-Template: If you don’t like option a), you can use also the Markdown-template.
-