├── .editorconfig
├── .gitattributes
├── .gitignore
├── AK.Toolkit.WinUI3.ButtonExtensionsSampleApp
├── AK.Toolkit.WinUI3.ButtonExtensionsSampleApp.csproj
├── App.xaml
├── App.xaml.cs
├── Assets
│ ├── LockScreenLogo.scale-200.png
│ ├── SplashScreen.scale-200.png
│ ├── Square150x150Logo.scale-200.png
│ ├── Square44x44Logo.scale-200.png
│ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ ├── StoreLogo.png
│ └── Wide310x150Logo.scale-200.png
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── Package.appxmanifest
├── Properties
│ └── launchSettings.json
└── app.manifest
├── AK.Toolkit.sln
├── Assets
├── auto-complete-textbox-sample-screenshot.png
├── auto-complete-textbox-screenshot.png
├── richtextblock-extensions-screenshot.png
└── scrollbar-extensions-annotations-screenshot.png
├── LICENSE
├── README.md
├── Samples
├── AK.Toolkit.Samples.GridIndexer
│ ├── AK.Toolkit.Samples.GridIndexer.csproj
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Assets
│ │ ├── LockScreenLogo.scale-200.png
│ │ ├── SplashScreen.scale-200.png
│ │ ├── Square150x150Logo.scale-200.png
│ │ ├── Square44x44Logo.scale-200.png
│ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ │ ├── StoreLogo.png
│ │ └── Wide310x150Logo.scale-200.png
│ ├── GridIndexerPage.xaml
│ ├── GridIndexerPage.xaml.cs
│ ├── MainWindow.xaml
│ ├── MainWindow.xaml.cs
│ ├── Package.appxmanifest
│ ├── Properties
│ │ └── launchSettings.json
│ ├── UsualGridPage.xaml
│ ├── UsualGridPage.xaml.cs
│ └── app.manifest
├── AK.Toolkit.Samples.ScrollBarExtensions
│ ├── AK.Toolkit.Samples.ScrollBarExtensions.csproj
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Assets
│ │ ├── LockScreenLogo.scale-200.png
│ │ ├── SplashScreen.scale-200.png
│ │ ├── Square150x150Logo.scale-200.png
│ │ ├── Square44x44Logo.scale-200.png
│ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ │ ├── StoreLogo.png
│ │ └── Wide310x150Logo.scale-200.png
│ ├── MainWindow.xaml
│ ├── MainWindow.xaml.cs
│ ├── Package.appxmanifest
│ ├── Page1.xaml
│ ├── Page1.xaml.cs
│ ├── Properties
│ │ └── launchSettings.json
│ └── app.manifest
├── AK.Toolkit.Samples.WinUI3.ScrollBarExtensions
│ ├── AK.Toolkit.Samples.WinUI3.ScrollBarExtensions.csproj
│ ├── AnnotationsPage.xaml
│ ├── AnnotationsPage.xaml.cs
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Assets
│ │ ├── LockScreenLogo.scale-200.png
│ │ ├── SplashScreen.scale-200.png
│ │ ├── Square150x150Logo.scale-200.png
│ │ ├── Square44x44Logo.scale-200.png
│ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ │ ├── StoreLogo.png
│ │ └── Wide310x150Logo.scale-200.png
│ ├── DataGridsPage.xaml
│ ├── DataGridsPage.xaml.cs
│ ├── EmptyPage.xaml
│ ├── EmptyPage.xaml.cs
│ ├── GridViewsPage.xaml
│ ├── GridViewsPage.xaml.cs
│ ├── ListViewsPage.xaml
│ ├── ListViewsPage.xaml.cs
│ ├── MainWindow.xaml
│ ├── MainWindow.xaml.cs
│ ├── Package.appxmanifest
│ ├── Properties
│ │ └── launchSettings.json
│ ├── ScrollBarsPage.xaml
│ ├── ScrollBarsPage.xaml.cs
│ ├── ScrollViewersPage.xaml
│ ├── ScrollViewersPage.xaml.cs
│ └── app.manifest
├── AK.Toolkit.Samples
│ ├── AK.Toolkit.Samples.csproj
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Assets
│ │ ├── LockScreenLogo.scale-200.png
│ │ ├── SplashScreen.scale-200.png
│ │ ├── Square150x150Logo.scale-200.png
│ │ ├── Square44x44Logo.scale-200.png
│ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ │ ├── StoreLogo.png
│ │ └── Wide310x150Logo.scale-200.png
│ ├── ControlBackgroundGetter.cs
│ ├── MainWindow.xaml
│ ├── MainWindow.xaml.cs
│ ├── NullableBooleanToBooleanConverter.cs
│ ├── Package.appxmanifest
│ ├── Properties
│ │ └── launchSettings.json
│ ├── SamplesPage.xaml
│ ├── SamplesPage.xaml.cs
│ └── app.manifest
├── AK.Toolkit.WinUI3.RichTextBlockExtensionsSampleApp
│ ├── AK.Toolkit.WinUI3.RichTextBlockExtensionsSampleApp.csproj
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Assets
│ │ ├── LockScreenLogo.scale-200.png
│ │ ├── SplashScreen.scale-200.png
│ │ ├── Square150x150Logo.scale-200.png
│ │ ├── Square44x44Logo.scale-200.png
│ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ │ ├── StoreLogo.png
│ │ └── Wide310x150Logo.scale-200.png
│ ├── MainPage.xaml
│ ├── MainPage.xaml.cs
│ ├── MainWindow.xaml
│ ├── MainWindow.xaml.cs
│ ├── NavigationViewExtensions.cs
│ ├── Package.appxmanifest
│ ├── Properties
│ │ └── launchSettings.json
│ ├── ShellPage.xaml
│ ├── ShellPage.xaml.cs
│ ├── SubPage.xaml
│ ├── SubPage.xaml.cs
│ ├── TextHighlightablePage.cs
│ └── app.manifest
└── AK.Toolkit.WinUI3.TextBlockExSampleApp
│ ├── AK.Toolkit.WinUI3.TextBlockExSampleApp.csproj
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Assets
│ ├── LockScreenLogo.scale-200.png
│ ├── SplashScreen.scale-200.png
│ ├── Square150x150Logo.scale-200.png
│ ├── Square44x44Logo.scale-200.png
│ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ ├── StoreLogo.png
│ └── Wide310x150Logo.scale-200.png
│ ├── ButtonPage.xaml
│ ├── ButtonPage.xaml.cs
│ ├── MainPage.xaml
│ ├── MainPage.xaml.cs
│ ├── MainWindow.xaml
│ ├── MainWindow.xaml.cs
│ ├── NavigationViewExtensions.cs
│ ├── Package.appxmanifest
│ ├── Properties
│ └── launchSettings.json
│ ├── ShellPage.xaml
│ ├── ShellPage.xaml.cs
│ ├── SubPage.xaml
│ ├── SubPage.xaml.cs
│ ├── TextHighlightablePage.cs
│ └── app.manifest
├── WinUI3
├── AK.Toolkit.WinUI3.AutoCompleteTextBox
│ ├── AK.Toolkit.WinUI3.AutoCompleteTextBox.csproj
│ ├── AutoCompleteTextBox.cs
│ └── Themes
│ │ └── Generic.xaml
├── AK.Toolkit.WinUI3.ButtonExtensions
│ ├── AK.Toolkit.WinUI3.ButtonExtensions.csproj
│ └── ButtonExtensions.cs
├── AK.Toolkit.WinUI3.GridIndexer
│ ├── AK.Toolkit.WinUI3.GridIndexer.csproj
│ ├── GridIndexer.cs
│ ├── GridIndexerAttachedProperty.cs
│ └── GridIndexerException.cs
├── AK.Toolkit.WinUI3.NumberBoxEx
│ ├── AK.Toolkit.WinUI3.NumberBoxEx.csproj
│ └── NumberBoxEx.cs
├── AK.Toolkit.WinUI3.RichTextBlockExtensions
│ ├── AK.Toolkit.WinUI3.RichTextBlockExtensions.csproj
│ └── RichTextBlockExtensions.cs
├── AK.Toolkit.WinUI3.ScrollBarExtensions
│ ├── AK.Toolkit.WinUI3.ScrollBarExtensions.csproj
│ ├── ScrollBarExtensions.Annotations.cs
│ ├── ScrollBarExtensions.KeepExpanded.cs
│ └── ScrollBarExtensions.cs
└── AK.Toolkit.WinUI3.TextBlockEx
│ ├── AK.Toolkit.WinUI3.TextBlockEx.csproj
│ ├── TextBlockEx.cs
│ └── Themes
│ └── Generic.xaml
└── winui.png
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | WinExe
4 | net8.0-windows10.0.19041.0
5 | 10.0.17763.0
6 | AK.Toolkit.WinUI3.ButtonExtensionsSampleApp
7 | app.manifest
8 | x86;x64;ARM64
9 | win-x86;win-x64;win-arm64
10 | win10-x86;win10-x64;win10-arm64
11 | win-$(Platform).pubxml
12 | true
13 | true
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
49 |
50 | true
51 |
52 |
--------------------------------------------------------------------------------
/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml;
2 | using Microsoft.UI.Xaml.Controls;
3 | using Microsoft.UI.Xaml.Controls.Primitives;
4 | using Microsoft.UI.Xaml.Data;
5 | using Microsoft.UI.Xaml.Input;
6 | using Microsoft.UI.Xaml.Media;
7 | using Microsoft.UI.Xaml.Navigation;
8 | using Microsoft.UI.Xaml.Shapes;
9 | using System;
10 | using System.Collections.Generic;
11 | using System.IO;
12 | using System.Linq;
13 | using System.Runtime.InteropServices.WindowsRuntime;
14 | using Windows.ApplicationModel;
15 | using Windows.ApplicationModel.Activation;
16 | using Windows.Foundation;
17 | using Windows.Foundation.Collections;
18 |
19 | // To learn more about WinUI, the WinUI project structure,
20 | // and more about our project templates, see: http://aka.ms/winui-project-info.
21 |
22 | namespace AK.Toolkit.WinUI3.ButtonExtensionsSampleApp;
23 | ///
24 | /// Provides application-specific behavior to supplement the default Application class.
25 | ///
26 | public partial class App : Application
27 | {
28 | ///
29 | /// Initializes the singleton application object. This is the first line of authored code
30 | /// executed, and as such is the logical equivalent of main() or WinMain().
31 | ///
32 | public App()
33 | {
34 | this.InitializeComponent();
35 | }
36 |
37 | ///
38 | /// Invoked when the application is launched.
39 | ///
40 | /// Details about the launch request and process.
41 | protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
42 | {
43 | m_window = new MainWindow();
44 | m_window.Activate();
45 | }
46 |
47 | private Window m_window;
48 | }
49 |
--------------------------------------------------------------------------------
/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/Assets/LockScreenLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndrewKeepCoding/AK.Toolkit/3da24a4991a8d9f71b53d349ee9d359f3f4acc44/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/Assets/LockScreenLogo.scale-200.png
--------------------------------------------------------------------------------
/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/Assets/SplashScreen.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndrewKeepCoding/AK.Toolkit/3da24a4991a8d9f71b53d349ee9d359f3f4acc44/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/Assets/SplashScreen.scale-200.png
--------------------------------------------------------------------------------
/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/Assets/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndrewKeepCoding/AK.Toolkit/3da24a4991a8d9f71b53d349ee9d359f3f4acc44/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/Assets/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/Assets/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndrewKeepCoding/AK.Toolkit/3da24a4991a8d9f71b53d349ee9d359f3f4acc44/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/Assets/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndrewKeepCoding/AK.Toolkit/3da24a4991a8d9f71b53d349ee9d359f3f4acc44/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
--------------------------------------------------------------------------------
/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/Assets/StoreLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndrewKeepCoding/AK.Toolkit/3da24a4991a8d9f71b53d349ee9d359f3f4acc44/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/Assets/StoreLogo.png
--------------------------------------------------------------------------------
/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/Assets/Wide310x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndrewKeepCoding/AK.Toolkit/3da24a4991a8d9f71b53d349ee9d359f3f4acc44/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/Assets/Wide310x150Logo.scale-200.png
--------------------------------------------------------------------------------
/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/MainWindow.xaml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
24 |
28 |
32 |
33 |
37 |
41 |
45 |
46 |
47 |
48 |
49 |
54 |
58 |
62 |
68 |
74 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
--------------------------------------------------------------------------------
/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/MainWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.UI.Xaml;
2 | using Microsoft.UI.Xaml.Controls;
3 |
4 | namespace AK.Toolkit.WinUI3.ButtonExtensionsSampleApp;
5 |
6 | public sealed partial class MainWindow : Window
7 | {
8 | public MainWindow()
9 | {
10 | InitializeComponent();
11 | }
12 |
13 | private void Button_Click(object sender, RoutedEventArgs e)
14 | {
15 | if (sender is not Button button)
16 | {
17 | return;
18 | }
19 |
20 | button.Content = "Clicked";
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/Package.appxmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
14 |
15 |
16 |
17 |
18 | AK.Toolkit.WinUI3.ButtonExtensionsSampleApp
19 | Andrew
20 | Assets\StoreLogo.png
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
36 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "profiles": {
3 | "AK.Toolkit.WinUI3.ButtonExtensionsSampleApp (Package)": {
4 | "commandName": "MsixPackage"
5 | },
6 | "AK.Toolkit.WinUI3.ButtonExtensionsSampleApp (Unpackaged)": {
7 | "commandName": "Project"
8 | }
9 | }
10 | }
--------------------------------------------------------------------------------
/AK.Toolkit.WinUI3.ButtonExtensionsSampleApp/app.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | PerMonitorV2
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Assets/auto-complete-textbox-sample-screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndrewKeepCoding/AK.Toolkit/3da24a4991a8d9f71b53d349ee9d359f3f4acc44/Assets/auto-complete-textbox-sample-screenshot.png
--------------------------------------------------------------------------------
/Assets/auto-complete-textbox-screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndrewKeepCoding/AK.Toolkit/3da24a4991a8d9f71b53d349ee9d359f3f4acc44/Assets/auto-complete-textbox-screenshot.png
--------------------------------------------------------------------------------
/Assets/richtextblock-extensions-screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndrewKeepCoding/AK.Toolkit/3da24a4991a8d9f71b53d349ee9d359f3f4acc44/Assets/richtextblock-extensions-screenshot.png
--------------------------------------------------------------------------------
/Assets/scrollbar-extensions-annotations-screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AndrewKeepCoding/AK.Toolkit/3da24a4991a8d9f71b53d349ee9d359f3f4acc44/Assets/scrollbar-extensions-annotations-screenshot.png
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Andrew KeepCoding
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 🧰 AK.Toolkit
2 |
3 | The AK.Toolkit will be a collection of controls, helpers, etc... stuff that I need but couldn't find somewhere else.
4 |
5 | ## 🔵 WinUI 3
6 |
7 | ### ⏺️ ButtonExtensions
8 |
9 | [🎬 YouTube](https://youtu.be/3PX2oLuqEqA?si=BCg9dpG2Oq-RvJHU)
10 |
11 | Provides additional features for the Button control:
12 | - PointerOverBackgroundLightnessFactor
13 | - PressedBackgroundLightnessFactor
14 |
15 | ```xaml
16 |
22 | ```
23 |
24 | ### 📜 RichTextBlockExtensions
25 |
26 | Extensions that make it easier to highlight `RichTextBlock`.
27 |
28 | ```xaml
29 |