![]() |
VOOZH | about |
dotnet add package I-Synergy.Framework.UI.UWP --version 2026.10308.10239
NuGet\Install-Package I-Synergy.Framework.UI.UWP -Version 2026.10308.10239
<PackageReference Include="I-Synergy.Framework.UI.UWP" Version="2026.10308.10239" />
<PackageVersion Include="I-Synergy.Framework.UI.UWP" Version="2026.10308.10239" />Directory.Packages.props
<PackageReference Include="I-Synergy.Framework.UI.UWP" />Project file
paket add I-Synergy.Framework.UI.UWP --version 2026.10308.10239
#r "nuget: I-Synergy.Framework.UI.UWP, 2026.10308.10239"
#:package I-Synergy.Framework.UI.UWP@2026.10308.10239
#addin nuget:?package=I-Synergy.Framework.UI.UWP&version=2026.10308.10239Install as a Cake Addin
#tool nuget:?package=I-Synergy.Framework.UI.UWP&version=2026.10308.10239Install as a Cake Tool
Universal Windows Platform (UWP) UI framework for building Windows 10 applications. This package provides a complete UWP implementation of the I-Synergy Framework UI services, controls, and patterns for Windows 10 desktop, mobile, Xbox, and IoT.
👁 NuGet
👁 License
👁 .NET
👁 Platform
Breaking Change (v2.0.0+): Minimum Windows version raised to 10.0.19041.0 (Version 2004).
See Platform Requirements and Migration Guide below.
Install the package via NuGet:
dotnet add package I-Synergy.Framework.UI.UWP
using ISynergy.Framework.UI;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Windows.ApplicationModel.Activation;
using Windows.UI.Xaml;
sealed partial class App : Application
{
private IHost _host;
public App()
{
InitializeComponent();
}
protected override async void OnLaunched(LaunchActivatedEventArgs e)
{
_host = Host.CreateDefaultBuilder()
.ConfigureServices((context, services) =>
{
// Core services
services.AddSingleton<ILanguageService, LanguageService>();
services.AddSingleton<IMessengerService, MessengerService>();
services.AddSingleton<IBusyService, BusyService>();
// UWP services
services.AddSingleton<IDialogService, DialogService>();
services.AddSingleton<INavigationService, NavigationService>();
services.AddSingleton<IThemeService, ThemeService>();
services.AddSingleton<IFileService<FileResult>, FileService>();
services.AddSingleton<IClipboardService, ClipboardService>();
// ViewModels
services.AddTransient<MainViewModel>();
services.AddTransient<ShellViewModel>();
})
.Build();
await _host.StartAsync();
// Apply theme
var themeService = _host.Services.GetRequiredService<IThemeService>();
themeService.ApplyTheme();
// Create root frame
var rootFrame = Window.Current.Content as Frame;
if (rootFrame == null)
{
rootFrame = new Frame();
Window.Current.Content = rootFrame;
}
if (e.PrelaunchActivated == false)
{
if (rootFrame.Content == null)
{
rootFrame.Navigate(typeof(MainPage), e.Arguments);
}
Window.Current.Activate();
}
}
}
<Page x:Class="MyApp.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
mc:Ignorable="d">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<CommandBar Grid.Row="0">
<AppBarButton Icon="Add" Label="New" Command="{x:Bind ViewModel.NewCommand}"/>
<AppBarButton Icon="Save" Label="Save" Command="{x:Bind ViewModel.SaveCommand}"/>
<AppBarSeparator/>
<AppBarButton Icon="Setting" Label="Settings" Command="{x:Bind ViewModel.SettingsCommand}"/>
</CommandBar>
<Frame Grid.Row="1" x:Name="ContentFrame"/>
<muxc:ProgressBar Grid.Row="2"
IsIndeterminate="{x:Bind ViewModel.BusyService.IsBusy, Mode=OneWay}"/>
</Grid>
</Page>
using ISynergy.Framework.Mvvm.ViewModels;
using ISynergy.Framework.Mvvm.Commands;
public class ProductViewModel : ViewModel
{
public AsyncRelayCommand SaveCommand { get; }
public AsyncRelayCommand DeleteCommand { get; }
public ProductViewModel(
ICommonServices commonServices,
IProductService productService,
ILogger<ProductViewModel> logger)
: base(commonServices, logger)
{
SaveCommand = new AsyncRelayCommand(SaveAsync);
DeleteCommand = new AsyncRelayCommand(DeleteAsync);
}
private async Task SaveAsync()
{
try
{
await _productService.SaveAsync(Product);
await CommonServices.DialogService.ShowInformationAsync(
"Product saved successfully",
"Success");
}
catch (Exception ex)
{
await CommonServices.DialogService.ShowErrorAsync(ex, "Error");
}
}
private async Task DeleteAsync()
{
var result = await CommonServices.DialogService.ShowMessageAsync(
"Are you sure you want to delete this product?",
"Confirm Delete",
MessageBoxButtons.YesNo);
if (result == MessageBoxResult.Yes)
{
await _productService.DeleteAsync(Product.Id);
await CommonServices.NavigationService.GoBackAsync();
}
}
}
Use x:Bind for compiled bindings to improve performance in UWP.
UWP apps require appropriate capabilities in Package.appxmanifest for file access, camera, etc.
UWP is in maintenance mode. Consider WinUI 3 or MAUI for new projects.
If your application targets Windows 10 Version 1809 (10.0.17763.0), you have the following options:
Update Target OS: Update your Package.appxmanifest TargetDeviceFamily to minimum version 10.0.19041.0
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.19041.0" MaxVersionTested="10.0.26100.0" />
Use Previous Version: Continue using v1.x of this package if you need to support Windows 10 Version 1809
Justification for Change: The minimum version was raised to leverage modern Windows SDK APIs and tooling features that improve compatibility with .NET 10 and provide access to enhanced UWP platform capabilities
For issues, questions, or contributions, please visit the GitHub repository.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-windows10.0.26100 net10.0-windows10.0.26100 is compatible. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.10313.10041-preview | 140 | 3/13/2026 |
| 2026.10312.11709-preview | 132 | 3/12/2026 |
| 2026.10310.10042-preview | 110 | 3/10/2026 |
| 2026.10309.12136-preview | 108 | 3/9/2026 |
| 2026.10309.12046-preview | 104 | 3/9/2026 |
| 2026.10308.10239 | 123 | 3/8/2026 |
| 2026.10308.10116-preview | 107 | 3/8/2026 |
| 2026.10307.12333-preview | 99 | 3/7/2026 |
| 2026.10226.11633 | 127 | 2/26/2026 |
| 2026.10226.11549-preview | 116 | 2/26/2026 |
| 2026.10217.10039 | 138 | 2/17/2026 |
| 2026.10216.12357-preview | 109 | 2/16/2026 |
| 2026.10214.10109 | 126 | 2/16/2026 |
| 2026.10214.10009-preview | 119 | 2/13/2026 |
| 2026.10211.12302 | 133 | 2/11/2026 |
| 2026.10211.12225-preview | 115 | 2/11/2026 |
| 2026.10201.12332 | 140 | 2/1/2026 |
| 2026.10201.12300-preview | 128 | 2/1/2026 |
| 2026.10116.10015-preview | 122 | 1/15/2026 |
| 2026.10110.10203 | 144 | 1/10/2026 |