@@ -10,21 +10,23 @@ This is a base libraries for building WPF application with the MVVM design patte
10
10
- [ Table of contents] ( #table-of-contents )
11
11
- [ Requirements] ( #requirements )
12
12
- [ NuGet Packages Provided in this Repository] ( #nuget-packages-provided-in-this-repository )
13
- - [ Demonstration Application] ( #demonstration-application )
14
- - [ Playground and Viewer for a Given Control or Functionality] ( #playground-and-viewer-for-a-given-control-or-functionality )
13
+ - [ 🔎 Demonstration Application] ( #- demonstration-application )
14
+ - [ Playground and Viewer for a Given Control or Functionality] ( #playground-and-viewer-for-a-given-control-or-functionality )
15
15
- [ Initial glimpse at the demonstration application] ( #initial-glimpse-at-the-demonstration-application )
16
- - [ How to get started with atc-wpf] ( #how-to-get-started-with-atc-wpf )
17
- - [ Readme's for each NuGet Package area] ( #readmes-for-each-nuget-package-area )
18
- - [ Atc.Wpf] ( #atcwpf )
19
- - [ Controls] ( #controls )
20
- - [ Misc] ( #misc )
21
- - [ Atc.Wpf.Controls] ( #atcwpfcontrols )
22
- - [ Controls] ( #controls-1 )
23
- - [ Misc] ( #misc-1 )
24
- - [ Atc.Wpf.FontIcons] ( #atcwpffonticons )
25
- - [ Misc] ( #misc-2 )
26
- - [ Atc.Wpf.Theming] ( #atcwpftheming )
27
- - [ How to contribute] ( #how-to-contribute )
16
+ - [ 🚀 How to get started with atc-wpf] ( #-how-to-get-started-with-atc-wpf )
17
+ - [ WPF with MVVM Easily Separate UI and Business Logic] ( #wpf-with-mvvm-easily-separate-ui-and-business-logic )
18
+ - [ 📝 Readme's for each NuGet Package area] ( #-readmes-for-each-nuget-package-area )
19
+ - [ 💟 Atc.Wpf] ( #-atcwpf )
20
+ - [ Controls] ( #controls )
21
+ - [ Misc] ( #misc )
22
+ - [ 💟 Atc.Wpf.Controls] ( #-atcwpfcontrols )
23
+ - [ Controls] ( #controls-1 )
24
+ - [ Misc] ( #misc-1 )
25
+ - [ 💟 Atc.Wpf.FontIcons] ( #-atcwpffonticons )
26
+ - [ Misc] ( #misc-2 )
27
+ - [ 💟 Atc.Wpf.Theming] ( #-atcwpftheming )
28
+ - [ ⚙️ Source Generators] ( #️-source-generators )
29
+ - [ How to contribute] ( #how-to-contribute )
28
30
29
31
## Requirements
30
32
@@ -34,19 +36,19 @@ This is a base libraries for building WPF application with the MVVM design patte
34
36
35
37
| Nuget package | Description | Dependencies |
36
38
| -------------------------| -----------------------------------------------------| --------------------------------|
37
- | Atc.Wpf | Base Controls, ValueConverters, Extensions etc. | Atc & Atc.Wpf.SourceGenerators |
38
- | Atc.Wpf.Controls | Miscellaneous UI Controls | Atc.Wpf & Atc.Wpf.Theming |
39
- | Atc.Wpf.Controls.Sample | Controls for creating WPF sample apps | Atc.Wpf & Atc.Wpf.Theming |
40
- | Atc.Wpf.FontIcons | Render Svg and Img resources based on fonts | Atc.Wpf |
41
- | Atc.Wpf.Theming | Theming for Light & Dark mode for WPF base controls | Atc.Wpf |
39
+ | 💟 Atc.Wpf | Base Controls, ValueConverters, Extensions etc. | Atc & Atc.Wpf.SourceGenerators |
40
+ | 💟 Atc.Wpf.Controls | Miscellaneous UI Controls | Atc.Wpf & Atc.Wpf.Theming |
41
+ | 💟 Atc.Wpf.Controls.Sample | Controls for creating WPF sample apps | Atc.Wpf & Atc.Wpf.Theming |
42
+ | 💟 Atc.Wpf.FontIcons | Render Svg and Img resources based on fonts | Atc.Wpf |
43
+ | 💟 Atc.Wpf.Theming | Theming for Light & Dark mode for WPF base controls | Atc.Wpf |
42
44
43
- ## Demonstration Application
45
+ # 🔎 Demonstration Application
44
46
45
47
The demonstration application, ` Atc.Wpf.Sample ` , functions as a control explorer.
46
48
It provides quick visualization of a given control, along with options for
47
49
copying and pasting the XAML markup and/or the C# code for how to use it.
48
50
49
- ### Playground and Viewer for a Given Control or Functionality
51
+ ## Playground and Viewer for a Given Control or Functionality
50
52
51
53
The following example is taken from the ReplayCommandAsync which illustrates its usage:
52
54
@@ -70,16 +72,16 @@ The following example is taken from the ReplayCommandAsync which illustrates its
70
72
| Wpf.Theming - ImageButton ![ Img] ( docs/images/lm-wpf-theming-imagebutton.png ) | Wpf.Theming - ImageButton ![ Img] ( docs/images/dm-wpf-theming-imagebutton.png ) |
71
73
| Wpf.FontIcons - Viewer ![ Img] ( docs/images/lm-wpf-fonicons-viewer.png ) | Wpf.FontIcons - Viewer ![ Img] ( docs/images/dm-wpf-fonicons-viewer.png ) |
72
74
73
- ## How to get started with atc-wpf
75
+ # 🚀 How to get started with atc-wpf
74
76
75
77
First of all, include Nuget packages in the ` .csproj ` file like this:
76
78
77
79
``` xml
78
80
<ItemGroup >
79
- <PackageReference Include =" Atc.Wpf" Version =" 2.0.178 " />
80
- <PackageReference Include =" Atc.Wpf.Controls" Version =" 2.0.178 " />
81
- <PackageReference Include =" Atc.Wpf.FontIcons" Version =" 2.0.178 " />
82
- <PackageReference Include =" Atc.Wpf.Theming" Version =" 2.0.178 " />
81
+ <PackageReference Include =" Atc.Wpf" Version =" latest " />
82
+ <PackageReference Include =" Atc.Wpf.Controls" Version =" latest " />
83
+ <PackageReference Include =" Atc.Wpf.FontIcons" Version =" latest " />
84
+ <PackageReference Include =" Atc.Wpf.Theming" Version =" latest " />
83
85
</ItemGroup >
84
86
```
85
87
@@ -105,126 +107,78 @@ Then update `App.xaml` like this:
105
107
106
108
Now it is possible to use controls with theming and default WPF controls like TextBox, Button etc. with theme style.
107
109
108
- ## Readme's for each NuGet Package area
110
+ ## WPF with MVVM Easily Separate UI and Business Logic
111
+
112
+ With the ` Atc.Wpf ` , package, it is very easy to get startet with the nice ` MVVM pattern `
113
+
114
+ Please read more here:
115
+
116
+ - [ MVVM framework] ( docs/Mvvm/@Readme.md )
117
+ - [ Observerble properties] ( docs/Mvvm/@Readme.md )
118
+ - [ RelayCommands] ( docs/Mvvm/@Readme.md )
119
+
120
+ # 📝 Readme's for each NuGet Package area
109
121
110
122
*** Note: Right now, it is a limit amount of controls and components there is documented with a ` Readme.md ` file.
111
- Therefore run the ` Atc.Wpf.Sample ` application to explore all the controls and components.*** :-)
123
+ Therefore run the ` Atc.Wpf.Sample ` application to explore all the controls and components.*** 😊
112
124
113
- ### Atc.Wpf
125
+ ## 💟 Atc.Wpf
114
126
115
- #### Controls
127
+ ### Controls
116
128
117
- - [ GridEx] ( src/Atc.Wpf/Controls/Layouts/GridEx_Readme.md )
118
- - [ StaggeredPanel] ( src/Atc.Wpf/Controls/Layouts/StaggeredPanel_Readme.md )
119
- - [ UniformSpacingPanel] ( src/Atc.Wpf/Controls/Layouts/UniformSpacingPanel_Readme.md )
120
- - [ SvgImage] ( src/Atc.Wpf/Controls/Media/SvgImage_Readme.md )
121
- - Control Helpers
129
+ - Layouts
130
+ - [ GridEx] ( src/Atc.Wpf/Controls/Layouts/GridEx_Readme.md )
131
+ - [ StaggeredPanel] ( src/Atc.Wpf/Controls/Layouts/StaggeredPanel_Readme.md )
132
+ - [ UniformSpacingPanel] ( src/Atc.Wpf/Controls/Layouts/UniformSpacingPanel_Readme.md )
133
+ - Media
134
+ - [ SvgImage] ( src/Atc.Wpf/Controls/Media/SvgImage_Readme.md )
135
+ - Helpers
122
136
- [ PanelHelper] ( src/Atc.Wpf/Helpers/PanelHelper_Readme.md )
123
137
124
- #### Misc
138
+ ### Misc
125
139
126
- - [ MVVM framework] ( src/Atc.Wpf/Mvvm/@Readme.md )
127
- - [ RelayCommand's] ( src/Atc.Wpf/Command/@Readme.md )
128
140
- [ ShaderEffects] ( src/Atc.Wpf/Media/ShaderEffects/@Readme.md )
129
141
- [ How to use HLSL Shader Compiler] ( src/Atc.Wpf/Media/ShaderEffects/Shaders/@Readme.md )
130
142
- [ Tranlation & localizaion] ( src/Atc.Wpf/Translation/@Readme.md )
131
143
- [ ValueConverters] ( src/Atc.Wpf/ValueConverters/@Readme.md )
132
144
133
- ### Atc.Wpf.Controls
145
+ ## 💟 Atc.Wpf.Controls
134
146
135
- #### Controls
147
+ ### Controls
136
148
137
149
- [ WellKnownColorPicker] ( src/Atc.Wpf.Controls/ColorControls/WellKnownColorPicker_Readme.md )
138
150
139
- #### Misc
151
+ ### Misc
140
152
141
153
- [ ValueConverters] ( src/Atc.Wpf.Controls/ValueConverters/@Readme.md )
142
154
143
- ### Atc.Wpf.FontIcons
155
+ ## 💟 Atc.Wpf.FontIcons
144
156
145
- #### Misc
157
+ ### Misc
146
158
147
159
- [ ValueConverters] ( src/Atc.Wpf.FontIcons/ValueConverters/@Readme.md )
148
160
149
- ### Atc.Wpf.Theming
161
+ ## 💟 Atc.Wpf.Theming
150
162
151
163
- [ ValueConverters] ( src/Atc.Wpf.Theming/ValueConverters/@Readme.md )
152
164
153
- ### Source Generators
165
+ # ⚙️ Source Generators
154
166
155
- In MVVM , certain attributes help automate boilerplate code using source generators.
167
+ In for WPF , certain attributes help automate boilerplate code using source generators.
156
168
157
- Example for ViewModel classes
169
+ Read more about here:
158
170
159
- ![ MVVM Source Generation ] ( docs/images/mvvm-source-generated.png )
160
-
161
- For more details, see the [ MVVM ] ( src/Atc.Wpf/Mvvm/@Readme .md) section.
171
+ - [ SourceGenerators for AttachedProperties ] ( docs/SourceGenerators/AttachedProperty.md )
172
+ - [ SourceGenerators for DependencyProperties ] ( docs/SourceGenerators/DependencyProperty.md )
173
+ - [ SourceGenerators for ViewModel ] ( docs/SourceGenerators/ViewModel .md)
162
174
163
- ### DependencyProperty
175
+ Example for ViewModel classes
164
176
165
- ### Human made Code for complex property
166
-
167
- ``` csharp
168
- [DependencyProperty <bool >(" IsRunning" )]
169
- public partial class MyControl : UserControl
170
- {
171
- }
172
- ```
173
-
174
- ### Human made Code for simple property
175
-
176
- ``` csharp
177
- [DependencyProperty <bool >(" IsRunning" ]
178
- public partial class MyControl : UserControl
179
- {
180
- }
181
- ```
182
-
183
- ### Generated Code for simple property
184
-
185
- ```csharp
186
- public partial class MyControl
187
- {
188
- public static readonly DependencyProperty IsRunningProperty = DependencyProperty .Register (
189
- nameof (IsRunning ),
190
- typeof (bool ),
191
- typeof (MyControl ),
192
- new FrameworkPropertyMetadata (defaultValue : BooleanBoxes .TrueBox );
193
-
194
- public bool IsRunning
195
- {
196
- get => (bool )GetValue (IsRunningProperty );
197
- set => SetValue (IsRunningProperty , value );
198
- }
199
- }
200
- ```
177
+ ![ MVVM Source Generation] ( docs/images/mvvm-source-generated.png )
201
178
202
- ### Generated Code for complex property
203
-
204
- ```csharp
205
- public partial class MyControl
206
- {
207
- public static readonly DependencyProperty IsRunningProperty = DependencyProperty .Register (
208
- nameof (IsRunning ),
209
- typeof (bool ),
210
- typeof (MyControl ),
211
- new FrameworkPropertyMetadata (
212
- defaultValue : BooleanBoxes .TrueBox ,
213
- propertyChangedCallback : PropertyChangedCallback ,
214
- coerceValueCallback : CoerceValueCallback ,
215
- flags : FrameworkPropertyMetadataOptions .AffectsMeasure | FrameworkPropertyMetadataOptions .AffectsRender ,
216
- defaultUpdateSourceTrigger : UpdateSourceTrigger .Default ,
217
- isAnimationProhibited : true ));
218
-
219
- public bool IsRunning
220
- {
221
- get => (bool )GetValue (IsRunningProperty );
222
- set => SetValue (IsRunningProperty , value );
223
- }
224
- }
225
- ```
179
+ For more details, see the [ MVVM] ( docs/Mvvm/@Readme.md ) section.
226
180
227
- ## How to contribute
181
+ # How to contribute
228
182
229
183
[ Contribution Guidelines] ( https://atc-net.github.io/introduction/about-atc#how-to-contribute )
230
184
0 commit comments