Careful, this is still under construction!
AppBarServices is a .NET class library written in C# whose intended use is to provide AppBarServices (such as registering and positioning an AppBar) to a WPF application.
Given that it is a .NET class library and does utilize multiple functions of the Windows Api, this library can only be used for applications targeting the Windows operating system.
There are at least two projects here on GitHub and elsewhere that provide a similar functionality (check them out!):
So why did I decide to implement my own service? Here are some bullet points to clarify what the repository wants to be and how it might distinguish itself from other repositories:
- Completness: The repo aims to provide an AppBarService that works for always visible, as well as autohide AppBars and should not display buggy behavior in multi monitor setups, even if the setup changes while the AppBar is active (e.g. one monitor changing its resolution or getting shut off).
- Accessibility: This point has two sides to it. One, the class library should be easy to integrate into a WPF application by only reading the documentation provided here and using Intellisense and without looking at the actual implementation of the library. Two, if one wants to understand how things work under the hood the design of the code and the documentation within it (i.e. comments) should be as easy to follow as possible.
- Autonomy: The library should do one thing and one thing only: provide the services necessary to implement a WPF AppBar application. The only exception to this guideline is a WPF project that showcases the functionality and therefore benefits understanding.
- Learning Effect: I am a beginner programmer and especially new to C#, .NET and WPF. Building an AppBar from scratch (well... not really considering how many libraries and frameworks one uses to build software) helps me understand all of this a little better. This also means that I highly appreciate any feedback. Be it suggestions as to how to refactor some code parts, clarifications regarding code comments that display a wrong understanding or simply grammar/spelling mistakes - I'm here to learn so please get in touch!
to be added
to be added
to be added