Skip to content

Latest commit

 

History

History
161 lines (108 loc) · 7.01 KB

README.md

File metadata and controls

161 lines (108 loc) · 7.01 KB

NuGet Version

ATC.Net WPF

This is a base libraries for building WPF application with the MVVM design pattern.

Requirements

.NET 9 - Desktop Runtime

NuGet Packages Provided in this Repository

Nuget package Description Dependencies
💟 Atc.Wpf Base Controls, ValueConverters, Extensions etc. Atc & Atc.Wpf.SourceGenerators
💟 Atc.Wpf.Controls Miscellaneous UI Controls Atc.Wpf & Atc.Wpf.Theming
💟 Atc.Wpf.Controls.Sample Controls for creating WPF sample apps Atc.Wpf & Atc.Wpf.Theming
💟 Atc.Wpf.FontIcons Render Svg and Img resources based on fonts Atc.Wpf
💟 Atc.Wpf.Theming Theming for Light & Dark mode for WPF base controls Atc.Wpf

🔎 Demonstration Application

The demonstration application, Atc.Wpf.Sample, functions as a control explorer. It provides quick visualization of a given control, along with options for copying and pasting the XAML markup and/or the C# code for how to use it.

Playground and Viewer for a Given Control or Functionality

The following example is taken from the ReplayCommandAsync which illustrates its usage:

  • The Sample tab shows how to use the control or feature.
  • The XAML tab displays the corresponding XAML markup.
  • The CodeBehind tab reveals the underlying code-behind.
  • The ViewModel tab displays the associated ViewModel, if used.
  • The Readme tab displays the associated [control]_Readme.md, if exist.
Sample Img XAML Img
CodeBehind Img ViewModel Img

Initial glimpse at the demonstration application

Light-Mode Dark-Mode
Wpf - AutoGrid Img Wpf - AutoGrid Img
Wpf.Controls - Label MIX Img Wpf.Controls - Label MIX Img
Wpf.Theming - ImageButton Img Wpf.Theming - ImageButton Img
Wpf.FontIcons - Viewer Img Wpf.FontIcons - Viewer Img

🚀 How to get started with Atc's WPF

First of all, include Nuget packages in the .csproj file like this:

  <ItemGroup>
    <PackageReference Include="Atc.Wpf" Version="latest" />
    <PackageReference Include="Atc.Wpf.Controls" Version="latest" />
    <PackageReference Include="Atc.Wpf.FontIcons" Version="latest" />
    <PackageReference Include="Atc.Wpf.Theming" Version="latest" />
  </ItemGroup>

Then update App.xaml like this:

<Application
    x:Class="Atc.Wpf.Sample.App"
    xmlns:atc="https://github.com/atc-net/atc-wpf/tree/main/schemas"
    [other namespaces]>
    <Application.Resources>
        <ResourceDictionary>

            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/Atc.Wpf.Theming;component/Styles/Default.xaml" />
                <ResourceDictionary Source="pack://application:,,,/Atc.Wpf.Controls;component/Styles/Controls.xaml" />
            </ResourceDictionary.MergedDictionaries>

        </ResourceDictionary>
    </Application.Resources>
</Application>

Now it is possible to use controls with theming and default WPF controls like TextBox, Button etc. with theme style.

WPF with MVVM Easily Separate UI and Business Logic

With the Atc.Wpf, package, it is very easy to get startet with the nice MVVM pattern

Please read more here:

📝 Readme's for each NuGet Package area

Note: Right now, it is a limit amount of controls and components there is documented with a Readme.md file. Therefore run the Atc.Wpf.Sample application to explore all the controls and components. 😊

💟 Atc.Wpf

Controls

Misc

💟 Atc.Wpf.Controls

Controls

Misc

💟 Atc.Wpf.FontIcons

Misc

💟 Atc.Wpf.Theming

⚙️ Source Generators

In for WPF, certain attributes help automate boilerplate code using source generators.

Read more about here:

Example for ViewModel classes

MVVM Source Generation

For more details, see the MVVM section.

How to contribute

Contribution Guidelines

Coding Guidelines