![]() |
VOOZH | about |
dotnet add package SharedMauiCoreLibrary --version 1.2.9
NuGet\Install-Package SharedMauiCoreLibrary -Version 1.2.9
<PackageReference Include="SharedMauiCoreLibrary" Version="1.2.9" />
<PackageVersion Include="SharedMauiCoreLibrary" Version="1.2.9" />Directory.Packages.props
<PackageReference Include="SharedMauiCoreLibrary" />Project file
paket add SharedMauiCoreLibrary --version 1.2.9
#r "nuget: SharedMauiCoreLibrary, 1.2.9"
#:package SharedMauiCoreLibrary@1.2.9
#addin nuget:?package=SharedMauiCoreLibrary&version=1.2.9Install as a Cake Addin
#tool nuget:?package=SharedMauiCoreLibrary&version=1.2.9Install as a Cake Tool
A shared library containing recurring features & utilities for .NET MAUI applications
If you want to support me, you can order over following affilate links (I'll get a small share from your purchase from the corresponding store).
(*) Affiliate link Thank you very much for supporting me!
Get the latest version from nuget.org<br>
👁 NuGet
👁 NuGet
👁 NuGet
Add the MauiProgram.cs add following line.
MauiAppBuilder builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UseMauiCommunityToolkit()
.ConfigureSyncfusionCore()
.ConfigureCoreLibrary() // <= add this
//...
This will automatically initialize following extensions.
.UseMauiCommunityToolkit()
.ConfigureDispatching()
.ConfigureDispatchManager() // Inits the DispatchManager with the configured dispatcher
Please find a list of available content below.
The UserSecretsManager helps you to manage your user secrets in your application. It reads the secrets.json file stored in the user profile folder.
if (Assembly is null)
{
Assembly = IntrospectionExtensions.GetTypeInfo(typeof(MauiProgram)).Assembly;
UserSecretsManager.Settings = new UserSecretsManager.UserSecretsManagerBuilder()
.WithAppNamespace("SharedMauiXamlStylesLibrary.SampleApp")
.WithCustomAssambly(Assembly)
.Build();
}
xmlns:behaviors="clr-namespace:AndreasReitberger.Shared.Core.Behaviors;assembly=SharedMauiCoreLibrary"
This Behavior executes a Command when the specified Event is fired.
<sliders:SfSlider
Margin="0,4"
Minimum="0" Maximum="{Binding LimitFan}"
StepSize="1"
MinorTicksPerInterval="100"
ShowLabels="True"
>
<sliders:SfSlider.Behaviors>
<behaviors:EventToCommandBehavior
EventName="ValueChangeEnd"
Command="{Binding SetFanCommand}"
/>
</sliders:SfSlider.Behaviors>
</sliders:SfSlider>
xmlns:converters="clr-namespace:AndreasReitberger.Shared.Core.Converters;assembly=SharedMauiCoreLibrary"
This Converter converts a Boolean into a reverse and non-reverse visibility (if value is true, it returns false)
<Label
Style="{StaticResource SmallLabelStyle}"
TextColor="{DynamicResource Error}"
Text="{x:Static localization:Strings.NotAvailableDots}"
IsVisible="{Binding HasDoubleExtruder, Converter={StaticResource BooleanReverseVisibilityConverter}}"
/>
This Converter converts a byte[] into an Image
<Image
VerticalOptions="Start"
Margin="{OnIdiom Phone='-4,0', Tablet='-62,0', Default='-4,0'}"
Source="{Binding Thumbnail, Converter={StaticResource ByteArrayToImageConverter}}"
>
<Image.Style>
<Style TargetType="Image">
<Setter Property="Aspect" Value="AspectFit"/>
<Style.Triggers>
<DataTrigger
TargetType="Image"
Binding="{Binding IsPortrait}"
Value="False">
<Setter Property="Aspect" Value="AspectFill"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
This Converter converts a Color into Colors.White or Colors.Black. This helps to get the
accurate oreground for a colored Background.
<Border
Background="{Binding HexCode, Converter={StaticResource StringToColorConverter}, Mode=OneWay}"
>
<Label
Text="{Binding HexCode}"
TextColor="{Binding Source={RelativeSource AncestorType={x:Type Border}}, Path=Background, Converter={StaticResource BrushToBlackWhiteConverter}, Mode=OneWay}"
Style="{StaticResource LabelStyle}"
VerticalTextAlignment="Center"
HorizontalTextAlignment="Center"
/>
</Border>
This Converter converts a Double into a TimeSpan.
<Label
LineBreakMode="WordWrap" Margin="2,10,0,10"
VerticalTextAlignment="Center"
FontSize="{OnIdiom Tablet=14, Default=12}"
>
<Label.Style>
<Style TargetType="Label" BasedOn="{StaticResource TitleViewHeadlineLabelStyle}">
<Setter Property="IsVisible" Value="False"/>
<Style.Triggers>
<MultiTrigger
TargetType="Label">
<MultiTrigger.Conditions>
<BindingCondition Binding="{Binding IsPrinting, Mode=TwoWay}" Value="True"/>
<BindingCondition Binding="{Binding ShowRemainingPrintTimeInTitleView}" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="IsVisible" Value="True"/>
</MultiTrigger>
</Style.Triggers>
</Style>
</Label.Style>
<Label.FormattedText>
<FormattedString>
<Span Text="("/>
<Span Text="{Binding RemainingPrintTime, Converter={StaticResource DoubleHoursToTimeSpanConverter}}"/>
<Span Text=")"/>
</FormattedString>
</Label.FormattedText>
</Label>
This Converter converts a List<string> into a single String with the defined separator char.
This Converter converts a long into a Double. The result wil be in GigaBytes.
This Converter converts a long into a Double. The result wil be in MegaBytes.
This Converter converts a String (hex formated string) into a Color.
This Converter converts a Double (UNIX based) into a DateTime.
<Label
LineBreakMode="WordWrap" Margin="2,10,0,10"
VerticalTextAlignment="Center"
FontSize="{OnIdiom Tablet=14, Default=12}"
>
<Label.FormattedText>
<FormattedString>
<Span Text="("/>
<Span Text="{Binding CurrentDateTime, Converter={StaticResource UnixDateToDateTimeConverter}}"/>
<Span Text=")"/>
</FormattedString>
</Label.FormattedText>
</Label>
This Converter converts a Double (UNIX based) into a TimeSpan.
<Label
LineBreakMode="WordWrap" Margin="2,10,0,10"
VerticalTextAlignment="Center"
FontSize="{OnIdiom Tablet=14, Default=12}"
>
<Label.FormattedText>
<FormattedString>
<Span Text="("/>
<Span Text="{Binding RemainingPrintTime, Converter={StaticResource UnixDoubleHoursToTimeSpanConverter}}"/>
<Span Text=")"/>
</FormattedString>
</Label.FormattedText>
</Label>
This Converter converts a Uri into a String.
namespace AndreasReitberger.Shared.Core
This Class contains all needed properties for a ViewModel. You can inherit from this Class directly for your ViewModel,
or create an own ViewModelBase and inherit there form this class.
public partial class BaseViewModel : ViewModelBase
{
#region Properties
#region App
bool _isBeta = SettingsStaticDefault.App_IsBeta;
public new bool IsBeta
{
get { return _isBeta; }
set { SetProperty(ref _isBeta, value); }
}
bool _isLightVersion = SettingsStaticDefault.App_IsLightVersion;
public bool IsLightVersion
{
get { return _isLightVersion; }
set { SetProperty(ref _isLightVersion, value); }
}
bool _isTabletMode = false;
public bool IsTabletMode
{
get { return _isTabletMode; }
set { SetProperty(ref _isTabletMode, value); }
}
#endregion
#region Navigation
bool _isViewShown = false;
public bool IsViewShown
{
get { return _isViewShown; }
set { SetProperty(ref _isViewShown, value); }
}
#endregion
#region Connection
bool _isConnecting = false;
public bool IsConnecting
{
get { return _isConnecting; }
set { SetProperty(ref _isConnecting, value); }
}
#endregion
#endregion
#region Constructor
public BaseViewModel()
{
}
#endregion
#region LiveCycle
public void OnDisappearing()
{
try
{
if (SettingsApp.SettingsChanged)
{
// Notify other modules
MessagingCenter.Send(new AppMessageInfo(), AppMessages.OnSettingsChanged.ToString());
SettingsApp.SaveSettings();
SettingsApp.SettingsChanged = false;
}
}
catch (Exception exc)
{
// Log error
EventManager.Instance.LogError(exc);
}
}
#endregion
}
This Class uses Newtonsoft.JSON in order to serialize and deserialize objects to strings and vice reverse.
This is helpful if you want to store Collections or custom objects in the MAUI.Preferences (Settings).
// Convert to a String
SettingsApp.WebCam_DefaultWebCamSettings = JsonConvertHelper.ToSettingsString(value);
// Convert back to an object
ObservableCollection<KlipperWebCamSettingsInfo> webcams = JsonConvertHelper.ToObject(SettingsApp.WebCam_Settings, new ObservableCollection<KlipperWebCamSettingsInfo>());
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-android36.0 net10.0-android36.0 is compatible. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-ios26.0 net10.0-ios26.0 is compatible. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-maccatalyst26.0 net10.0-maccatalyst26.0 is compatible. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. net10.0-windows10.0.19041 net10.0-windows10.0.19041 is compatible. |
Showing the top 3 NuGet packages that depend on SharedMauiCoreLibrary:
| Package | Downloads |
|---|---|
|
SharedMauiXamlStylesLibrary
A collection of predefined Control styles for MAUI and Syncfusion. |
|
|
SharedMauiCoreLibrary.Database.SQLite
A libray used for .NET MAUI projects to manage databases. |
|
|
SharedMauiCoreLibrary.Database.SQL
A libray used for .NET MAUI projects to manage databases. |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.2.9 | 56 | 6/12/2026 |
| 1.2.8 | 248 | 5/20/2026 |
| 1.2.7 | 690 | 4/28/2026 |
| 1.2.6 | 97 | 4/14/2026 |
| 1.2.5 | 1,310 | 2/16/2026 |
| 1.2.4 | 455 | 1/16/2026 |
| 1.2.3 | 523 | 12/17/2025 |
| 1.2.2.1 | 766 | 12/3/2025 |
| 1.2.1 | 581 | 12/1/2025 |
| 1.2.0 | 260 | 11/27/2025 |
| 1.2.0-preview1 | 437 | 11/21/2025 |
| 1.1.20 | 318 | 11/12/2025 |
| 1.1.19 | 412 | 10/27/2025 |
| 1.1.18 | 1,304 | 9/16/2025 |
| 1.1.17 | 396 | 7/7/2025 |
| 1.1.16 | 417 | 6/12/2025 |
| 1.1.15 | 281 | 4/22/2025 |
| 1.1.14 | 457 | 3/16/2025 |
| 1.1.14-preview2 | 345 | 2/18/2025 |
| 1.1.14-preview1 | 208 | 12/19/2024 |
Check GitHub releases for changelog.