├── global.json ├── src ├── libs │ ├── key.snk │ ├── H.XamlExtensions.Shared │ │ ├── GlobalUsings.cs │ │ ├── H.XamlExtensions.Shared.projitems │ │ ├── H.XamlExtensions.Shared.shproj │ │ ├── Extensions │ │ │ ├── GridLengthConverter.cs │ │ │ ├── GridExtensions.ColumnsAndRows.cs │ │ │ └── Constraint.cs │ │ └── XamlExtensions │ │ │ └── GridExtensions.ColumnsAndRows.cs │ ├── H.XamlExtensions.Uwp │ │ └── H.XamlExtensions.Uwp.csproj │ ├── H.XamlExtensions.WinUI │ │ └── H.XamlExtensions.WinUI.csproj │ ├── H.XamlExtensions.Avalonia │ │ └── H.XamlExtensions.Avalonia.csproj │ ├── H.XamlExtensions.Uno │ │ └── H.XamlExtensions.Uno.csproj │ ├── H.XamlExtensions.Uno.WinUI │ │ └── H.XamlExtensions.Uno.WinUI.csproj │ ├── H.XamlExtensions.Wpf │ │ └── H.XamlExtensions.Wpf.csproj │ └── Directory.Build.props ├── apps │ ├── H.XamlExtensions.Apps.Uwp │ │ ├── Assets │ │ │ ├── StoreLogo.png │ │ │ ├── SplashScreen.scale-200.png │ │ │ ├── LockScreenLogo.scale-200.png │ │ │ ├── Square44x44Logo.scale-200.png │ │ │ ├── Wide310x150Logo.scale-200.png │ │ │ └── Square150x150Logo.scale-200.png │ │ ├── H.XamlExtensions.Apps.Uwp_TemporaryKey.pfx │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ └── Default.rd.xml │ │ ├── Package.appxmanifest │ │ └── H.XamlExtensions.Apps.Uwp.csproj │ ├── H.XamlExtensions.Apps.Wpf │ │ ├── App.xaml.cs │ │ ├── App.xaml │ │ ├── MainWindow.xaml.cs │ │ ├── H.XamlExtensions.Apps.Wpf.csproj │ │ └── MainWindow.xaml │ ├── Uno │ │ ├── H.XamlExtensions.Apps.Uno.WebAssembly │ │ │ ├── Program.cs │ │ │ ├── WasmScripts │ │ │ │ └── AppManifest.js │ │ │ ├── LinkerConfig.xml │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── H.XamlExtensions.Apps.Uno.WebAssembly.csproj │ │ │ ├── wwwroot │ │ │ │ └── web.config │ │ │ └── WasmCSS │ │ │ │ └── Fonts.css │ │ └── H.XamlExtensions.Apps.Uno.Skia.Wpf │ │ │ ├── App.xaml.cs │ │ │ ├── Assets │ │ │ └── Fonts │ │ │ │ └── uno-fluentui-assets.ttf │ │ │ ├── App.xaml │ │ │ ├── MainWindow.xaml.cs │ │ │ ├── MainWindow.xaml │ │ │ └── H.XamlExtensions.Apps.Uno.Skia.Wpf.csproj │ ├── H.XamlExtensions.Apps.Avalonia │ │ ├── Assets │ │ │ └── avalonia-logo.ico │ │ ├── App.axaml │ │ ├── MainView.axaml.cs │ │ ├── App.axaml.cs │ │ ├── Program.cs │ │ ├── H.XamlExtensions.Apps.Avalonia.csproj │ │ └── MainView.axaml │ ├── H.XamlExtensions.Apps.WinUI.Shared │ │ ├── Assets │ │ │ ├── StoreLogo.png │ │ │ ├── LockScreenLogo.scale-200.png │ │ │ ├── SplashScreen.scale-200.png │ │ │ ├── Square44x44Logo.scale-200.png │ │ │ ├── Wide310x150Logo.scale-200.png │ │ │ └── Square150x150Logo.scale-200.png │ │ ├── App.xaml │ │ ├── H.XamlExtensions.Apps.WinUI.Shared.shproj │ │ ├── Views │ │ │ └── MainView.xaml │ │ └── H.XamlExtensions.Apps.WinUI.Shared.projitems │ ├── H.XamlExtensions.Apps.Shared │ │ ├── Views │ │ │ └── MainView.xaml.cs │ │ ├── GlobalUsings.cs │ │ ├── H.XamlExtensions.Apps.Shared.projitems │ │ ├── H.XamlExtensions.Apps.Shared.shproj │ │ └── App.xaml.cs │ └── H.XamlExtensions.Apps.WinUI │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── app.manifest │ │ ├── H.XamlExtensions.Apps.WinUI.csproj │ │ └── Package.appxmanifest └── Directory.Build.props ├── assets └── nuget_icon.png ├── .github ├── FUNDING.yml ├── workflows │ └── dotnet.yml └── ISSUE_TEMPLATE │ └── bug-report.yaml ├── LICENSE ├── settings.xamlstyler ├── README.md ├── .vsconfig ├── .gitignore ├── .editorconfig └── H.XamlExtensions.sln /global.json: -------------------------------------------------------------------------------- 1 | { 2 | "msbuild-sdks": { 3 | "MSBuild.Sdk.Extras": "3.0.38" 4 | } 5 | } -------------------------------------------------------------------------------- /src/libs/key.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HavenDV/H.XamlExtensions/HEAD/src/libs/key.snk -------------------------------------------------------------------------------- /assets/nuget_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HavenDV/H.XamlExtensions/HEAD/assets/nuget_icon.png -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Uwp/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HavenDV/H.XamlExtensions/HEAD/src/apps/H.XamlExtensions.Apps.Uwp/Assets/StoreLogo.png -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Wpf/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | 3 | namespace H.XamlExtensions.Apps.Wpf; 4 | 5 | public partial class App : Application 6 | { 7 | } -------------------------------------------------------------------------------- /src/apps/Uno/H.XamlExtensions.Apps.Uno.WebAssembly/Program.cs: -------------------------------------------------------------------------------- 1 | using H.XamlExtensions.Apps; 2 | 3 | Application.Start(callback => 4 | { 5 | _ = new App(); 6 | }); 7 | -------------------------------------------------------------------------------- /src/apps/Uno/H.XamlExtensions.Apps.Uno.Skia.Wpf/App.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace H.XamlExtensions.Apps.Uno; 2 | 3 | public partial class App : System.Windows.Application 4 | { 5 | } 6 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Avalonia/Assets/avalonia-logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HavenDV/H.XamlExtensions/HEAD/src/apps/H.XamlExtensions.Apps.Avalonia/Assets/avalonia-logo.ico -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.WinUI.Shared/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HavenDV/H.XamlExtensions/HEAD/src/apps/H.XamlExtensions.Apps.WinUI.Shared/Assets/StoreLogo.png -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Uwp/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HavenDV/H.XamlExtensions/HEAD/src/apps/H.XamlExtensions.Apps.Uwp/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Uwp/Assets/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HavenDV/H.XamlExtensions/HEAD/src/apps/H.XamlExtensions.Apps.Uwp/Assets/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Uwp/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HavenDV/H.XamlExtensions/HEAD/src/apps/H.XamlExtensions.Apps.Uwp/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Uwp/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HavenDV/H.XamlExtensions/HEAD/src/apps/H.XamlExtensions.Apps.Uwp/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Uwp/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HavenDV/H.XamlExtensions/HEAD/src/apps/H.XamlExtensions.Apps.Uwp/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Uwp/H.XamlExtensions.Apps.Uwp_TemporaryKey.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HavenDV/H.XamlExtensions/HEAD/src/apps/H.XamlExtensions.Apps.Uwp/H.XamlExtensions.Apps.Uwp_TemporaryKey.pfx -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.WinUI.Shared/Assets/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HavenDV/H.XamlExtensions/HEAD/src/apps/H.XamlExtensions.Apps.WinUI.Shared/Assets/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.WinUI.Shared/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HavenDV/H.XamlExtensions/HEAD/src/apps/H.XamlExtensions.Apps.WinUI.Shared/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.WinUI.Shared/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HavenDV/H.XamlExtensions/HEAD/src/apps/H.XamlExtensions.Apps.WinUI.Shared/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.WinUI.Shared/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HavenDV/H.XamlExtensions/HEAD/src/apps/H.XamlExtensions.Apps.WinUI.Shared/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | patreon: havendv 2 | ko_fi: havendv 3 | custom: [ 4 | "https://www.paypal.me/havendv", 5 | "https://www.buymeacoffee.com/havendv", 6 | "https://www.upwork.com/freelancers/~017b1ad6f6af9cc189"] 7 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.WinUI.Shared/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HavenDV/H.XamlExtensions/HEAD/src/apps/H.XamlExtensions.Apps.WinUI.Shared/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /src/apps/Uno/H.XamlExtensions.Apps.Uno.Skia.Wpf/Assets/Fonts/uno-fluentui-assets.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HavenDV/H.XamlExtensions/HEAD/src/apps/Uno/H.XamlExtensions.Apps.Uno.Skia.Wpf/Assets/Fonts/uno-fluentui-assets.ttf -------------------------------------------------------------------------------- /src/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | preview 5 | enable 6 | enable 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/apps/Uno/H.XamlExtensions.Apps.Uno.WebAssembly/WasmScripts/AppManifest.js: -------------------------------------------------------------------------------- 1 | var UnoAppManifest = { 2 | 3 | splashScreenImage: "Assets/SplashScreen.scale-200.png", 4 | splashScreenColor: "#000", 5 | displayName: "H.XamlExtensions.Apps.Uno" 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Wpf/App.xaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Shared/Views/MainView.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace H.ReactiveUI.Apps.Views; 2 | 3 | public partial class MainView 4 | { 5 | #region Constructors 6 | 7 | public MainView() 8 | { 9 | InitializeComponent(); 10 | } 11 | 12 | #endregion 13 | } 14 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Wpf/MainWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace H.XamlExtensions.Apps.Wpf; 2 | 3 | public partial class MainWindow 4 | { 5 | #region Constructors 6 | 7 | public MainWindow() 8 | { 9 | InitializeComponent(); 10 | } 11 | 12 | #endregion 13 | } 14 | -------------------------------------------------------------------------------- /src/apps/Uno/H.XamlExtensions.Apps.Uno.Skia.Wpf/App.xaml: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.WinUI/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Package": { 4 | "commandName": "MsixPackage", 5 | "commandLineArgs": "" 6 | }, 7 | "Unpackaged": { 8 | "commandName": "Project", 9 | "commandLineArgs": "" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Avalonia/App.axaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/apps/Uno/H.XamlExtensions.Apps.Uno.Skia.Wpf/MainWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace H.XamlExtensions.Apps.Uno; 2 | 3 | public partial class MainWindow : System.Windows.Window 4 | { 5 | public MainWindow() 6 | { 7 | InitializeComponent(); 8 | 9 | Root.Content = new global::Uno.UI.Skia.Platform.WpfHost(Dispatcher, () => new H.XamlExtensions.Apps.App()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/apps/Uno/H.XamlExtensions.Apps.Uno.WebAssembly/LinkerConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Wpf/H.XamlExtensions.Apps.Wpf.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | WinExe 5 | net6.0-windows;net4.8 6 | true 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Avalonia/MainView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace H.XamlExtensions.Apps.Views; 6 | 7 | public partial class MainView : Window 8 | { 9 | public MainView() 10 | { 11 | InitializeComponent(); 12 | #if DEBUG 13 | this.AttachDevTools(); 14 | #endif 15 | } 16 | 17 | private void InitializeComponent() 18 | { 19 | AvaloniaXamlLoader.Load(this); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/libs/H.XamlExtensions.Shared/GlobalUsings.cs: -------------------------------------------------------------------------------- 1 | global using DependencyPropertyGenerator; 2 | #if HAS_AVALONIA 3 | global using Avalonia; 4 | global using Avalonia.Data; 5 | global using Avalonia.Controls; 6 | global using DependencyObject = Avalonia.IAvaloniaObject; 7 | #elif HAS_WPF 8 | global using System.Windows; 9 | global using System.Windows.Controls; 10 | #elif HAS_WINUI 11 | global using Microsoft.UI.Xaml; 12 | global using Microsoft.UI.Xaml.Controls; 13 | #else 14 | global using Windows.UI.Xaml; 15 | global using Windows.UI.Xaml.Controls; 16 | #endif -------------------------------------------------------------------------------- /src/apps/Uno/H.XamlExtensions.Apps.Uno.Skia.Wpf/MainWindow.xaml: -------------------------------------------------------------------------------- 1 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.WinUI.Shared/App.xaml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/libs/H.XamlExtensions.Uwp/H.XamlExtensions.Uwp.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | uap10.0.18362 5 | $(DefineConstants);HAS_UWP 6 | 7 | 8 | 9 | 10 | all 11 | compile; build; native; contentfiles; analyzers; buildtransitive 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /.github/workflows/dotnet.yml: -------------------------------------------------------------------------------- 1 | name: Build, test and publish 2 | on: [ push ] 3 | 4 | jobs: 5 | build-test-publish: 6 | name: Build, test and publish 7 | uses: HavenDV/workflows/.github/workflows/dotnet_build-test-publish.yml@main 8 | with: 9 | os: windows-2022 10 | project-path: 11 | /target:libs\H_XamlExtensions_Uno 12 | /target:libs\H_XamlExtensions_Uno_WinUI 13 | /target:libs\H_XamlExtensions_Uwp 14 | /target:libs\H_XamlExtensions_WinUI 15 | /target:libs\H_XamlExtensions_Wpf 16 | /target:libs\H_XamlExtensions_Avalonia 17 | use-msbuild: true 18 | workloads: android ios maccatalyst macos 19 | windows-sdk-version: 18362 20 | secrets: 21 | nuget-key: ${{ secrets.NUGET_KEY }} -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Avalonia/App.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls.ApplicationLifetimes; 3 | using Avalonia.Markup.Xaml; 4 | using H.XamlExtensions.Apps.Views; 5 | 6 | namespace H.XamlExtensions.Apps; 7 | 8 | public class App : Application 9 | { 10 | public override void Initialize() 11 | { 12 | #if DEBUG 13 | GC.KeepAlive(typeof(GridExtensions)); 14 | #endif 15 | 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | 19 | public override void OnFrameworkInitializationCompleted() 20 | { 21 | if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) 22 | { 23 | desktop.MainWindow = new MainView(); 24 | } 25 | 26 | base.OnFrameworkInitializationCompleted(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/apps/Uno/H.XamlExtensions.Apps.Uno.WebAssembly/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:56599/", 7 | "sslPort": 0 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | } 17 | }, 18 | "Kestrel": { 19 | "commandName": "Project", 20 | "launchBrowser": true, 21 | "environmentVariables": { 22 | "ASPNETCORE_ENVIRONMENT": "Development" 23 | }, 24 | "applicationUrl": "http://localhost:56600/" 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.WinUI/app.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | true/PM 12 | PerMonitorV2, PerMonitor 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Avalonia/Program.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | 3 | namespace H.XamlExtensions.Apps; 4 | 5 | internal class Program 6 | { 7 | // Initialization code. Don't use any Avalonia, third-party APIs or any 8 | // SynchronizationContext-reliant code before AppMain is called: things aren't initialized 9 | // yet and stuff might break. 10 | [STAThread] 11 | public static void Main(string[] args) 12 | { 13 | BuildAvaloniaApp() 14 | .StartWithClassicDesktopLifetime(args); 15 | } 16 | 17 | // Avalonia configuration, don't remove; also used by visual designer. 18 | public static AppBuilder BuildAvaloniaApp() 19 | { 20 | return AppBuilder 21 | .Configure() 22 | .UsePlatformDetect() 23 | .LogToTrace(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/libs/H.XamlExtensions.WinUI/H.XamlExtensions.WinUI.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net5.0-windows10.0.17763.0;net6.0-windows10.0.17763.0 5 | true 6 | $(DefineConstants);HAS_WINUI 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | all 16 | compile; build; native; contentfiles; analyzers; buildtransitive 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Avalonia/H.XamlExtensions.Apps.Avalonia.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | WinExe 5 | net6.0 6 | $(DefineConstants);HAS_AVALONIA 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Shared/GlobalUsings.cs: -------------------------------------------------------------------------------- 1 | // UWP does not support project level global usings. 2 | global using System; 3 | global using System.Linq; 4 | 5 | global using H.XamlExtensions; 6 | 7 | #if HAS_WPF 8 | global using System.Globalization; 9 | global using System.Windows; 10 | global using System.Windows.Data; 11 | global using System.Windows.Media; 12 | global using System.Windows.Controls; 13 | #elif HAS_WINUI 14 | global using Microsoft.UI; 15 | global using Microsoft.UI.Xaml; 16 | global using Microsoft.UI.Xaml.Data; 17 | global using Microsoft.UI.Xaml.Media; 18 | global using Microsoft.UI.Xaml.Controls; 19 | global using LaunchActivatedEventArgs = Microsoft.UI.Xaml.LaunchActivatedEventArgs; 20 | #else 21 | global using Windows.UI; 22 | global using Windows.UI.Xaml; 23 | global using Windows.UI.Xaml.Data; 24 | global using Windows.UI.Xaml.Media; 25 | global using Windows.UI.Xaml.Controls; 26 | #endif -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Shared/H.XamlExtensions.Apps.Shared.projitems: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath) 5 | true 6 | b2c9a032-9670-421e-a413-7c7f504f5b55 7 | 8 | 9 | H.XamlExtensions.Apps.Shared 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/libs/H.XamlExtensions.Avalonia/H.XamlExtensions.Avalonia.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0;net4.6.1 5 | $(DefineConstants);HAS_AVALONIA 6 | $(NoWarn);CA5394 7 | 8 | 9 | 10 | 11 | 12 | 13 | all 14 | compile; build; native; contentfiles; analyzers; buildtransitive 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/libs/H.XamlExtensions.Uno/H.XamlExtensions.Uno.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | $(TargetFrameworks);MonoAndroid11.0;xamarinios10;xamarinmac20 6 | false 7 | $(DefineConstants);HAS_UNO 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | all 17 | compile; build; native; contentfiles; analyzers; buildtransitive 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/libs/H.XamlExtensions.Uno.WinUI/H.XamlExtensions.Uno.WinUI.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | $(TargetFrameworks);MonoAndroid11.0;xamarinios10;xamarinmac20 6 | false 7 | $(DefineConstants);HAS_UNO;HAS_WINUI 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | all 17 | compile; build; native; contentfiles; analyzers; buildtransitive 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Avalonia/MainView.axaml: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/libs/H.XamlExtensions.Wpf/H.XamlExtensions.Wpf.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net4.6.1;net5.0-windows;net6.0-windows 5 | true 6 | $(DefineConstants);HAS_WPF 7 | $(NoWarn);WPF0013;WPF0042 8 | 9 | 10 | 11 | 12 | 13 | 14 | all 15 | compile; build; native; contentfiles; analyzers; buildtransitive 16 | 17 | 18 | all 19 | runtime; build; native; contentfiles; analyzers; buildtransitive 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Wpf/MainWindow.xaml: -------------------------------------------------------------------------------- 1 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Uwp/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("")] 12 | [assembly: AssemblyCopyright("")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Version information for an assembly consists of the following four values: 17 | // 18 | // Major Version 19 | // Minor Version 20 | // Build Number 21 | // Revision 22 | // 23 | // You can specify all the values or you can default the Build and Revision Numbers 24 | // by using the '*' as shown below: 25 | // [assembly: AssemblyVersion("1.0.*")] 26 | [assembly: AssemblyVersion("1.0.0.0")] 27 | [assembly: AssemblyFileVersion("1.0.0.0")] 28 | [assembly: ComVisible(false)] -------------------------------------------------------------------------------- /src/libs/H.XamlExtensions.Shared/H.XamlExtensions.Shared.projitems: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath) 5 | true 6 | f497b163-e46e-4ea6-9e41-bb0c25ca6272 7 | 8 | 9 | H.XamlExtensions.Shared 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/libs/H.XamlExtensions.Shared/H.XamlExtensions.Shared.shproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | f497b163-e46e-4ea6-9e41-bb0c25ca6272 5 | 14.0 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Konstantin S. 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 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Shared/H.XamlExtensions.Apps.Shared.shproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | b2c9a032-9670-421e-a413-7c7f504f5b55 5 | 14.0 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.WinUI.Shared/H.XamlExtensions.Apps.WinUI.Shared.shproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 418d1399-62c8-481b-a954-517b189eca70 5 | 14.0 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/libs/H.XamlExtensions.Shared/Extensions/GridLengthConverter.cs: -------------------------------------------------------------------------------- 1 | using System.Globalization; 2 | 3 | #nullable enable 4 | 5 | namespace H.XamlExtensions; 6 | 7 | /// 8 | /// https://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/Windows/GridLengthConverter.cs 9 | /// 10 | public static class GridLengthConverter 11 | { 12 | public static GridLength ConvertFromInvariantString(string text) 13 | { 14 | if (string.IsNullOrWhiteSpace(text)) 15 | { 16 | return new GridLength(1, GridUnitType.Star); 17 | } 18 | 19 | if (text.ToUpperInvariant() is "AUTO" or "A") 20 | { 21 | return GridLength.Auto; 22 | } 23 | 24 | if (text.Contains('*')) 25 | { 26 | var value = text.Replace("*", string.Empty); 27 | 28 | return new GridLength( 29 | string.IsNullOrWhiteSpace(value) 30 | ? 1 31 | : Convert.ToDouble(value, CultureInfo.InvariantCulture), 32 | GridUnitType.Star); 33 | } 34 | 35 | return new GridLength(Convert.ToDouble(text, CultureInfo.InvariantCulture)); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.WinUI.Shared/Views/MainView.xaml: -------------------------------------------------------------------------------- 1 | 13 | 14 | 19 | 24 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Uwp/Properties/Default.rd.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/libs/H.XamlExtensions.Shared/XamlExtensions/GridExtensions.ColumnsAndRows.cs: -------------------------------------------------------------------------------- 1 | #nullable enable 2 | 3 | namespace H.XamlExtensions; 4 | 5 | [AttachedDependencyProperty("ColumnsAndRows", DefaultValue = "")] 6 | [AttachedDependencyProperty("Columns", DefaultValue = "")] 7 | [AttachedDependencyProperty("Rows", DefaultValue = "")] 8 | #if HAS_AVALONIA 9 | public partial class GridExtensions 10 | #else 11 | public static partial class GridExtensions 12 | #endif 13 | { 14 | #region ColumnsAndRows 15 | 16 | static partial void OnColumnsAndRowsChanged( 17 | Grid grid, 18 | string? oldValue, 19 | string? newValue) 20 | { 21 | grid.SetColumnsAndRows(newValue ?? string.Empty); 22 | } 23 | 24 | #endregion 25 | 26 | #region Columns 27 | 28 | static partial void OnColumnsChanged( 29 | Grid grid, 30 | string? oldValue, 31 | string? newValue) 32 | { 33 | #if HAS_WPF 34 | grid.SetCurrentValue(ColumnsAndRowsProperty, $"{newValue};*"); 35 | #else 36 | grid.SetValue(ColumnsAndRowsProperty, $"{newValue};*"); 37 | #endif 38 | } 39 | 40 | #endregion 41 | 42 | #region Rows 43 | 44 | static partial void OnRowsChanged( 45 | Grid grid, 46 | string? oldValue, 47 | string? newValue) 48 | { 49 | #if HAS_WPF 50 | grid.SetCurrentValue(ColumnsAndRowsProperty, $"*;{newValue}"); 51 | #else 52 | grid.SetValue(ColumnsAndRowsProperty, $"*;{newValue}"); 53 | #endif 54 | } 55 | 56 | #endregion 57 | } -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.WinUI/H.XamlExtensions.Apps.WinUI.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | WinExe 5 | net6.0-windows10.0.18362.0 6 | x86;x64;arm64 7 | true 8 | 9 | $(DefineConstants);HAS_WINUI 10 | true 11 | app.manifest 12 | 13 | 14 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /src/libs/H.XamlExtensions.Shared/Extensions/GridExtensions.ColumnsAndRows.cs: -------------------------------------------------------------------------------- 1 | #nullable enable 2 | 3 | namespace H.XamlExtensions; 4 | 5 | public static class GridColumnsAndRowsExtensions 6 | { 7 | #region Methods 8 | 9 | public static void SetColumnsAndRows( 10 | this Grid grid, 11 | string columnsAndRows) 12 | { 13 | grid = grid ?? throw new ArgumentNullException(nameof(grid)); 14 | columnsAndRows = columnsAndRows ?? throw new ArgumentNullException(nameof(columnsAndRows)); 15 | 16 | grid.ColumnDefinitions.Clear(); 17 | grid.RowDefinitions.Clear(); 18 | 19 | if (string.IsNullOrWhiteSpace(columnsAndRows)) 20 | { 21 | return; 22 | } 23 | 24 | var values = columnsAndRows.Split(';'); 25 | var columns = (values.ElementAtOrDefault(0) ?? "*") 26 | .Split(',') 27 | .Select(Constraint.Parse) 28 | .ToArray(); 29 | var rows = (values.ElementAtOrDefault(1) ?? "*") 30 | .Split(',') 31 | .Select(Constraint.Parse) 32 | .ToArray(); 33 | 34 | foreach (var constraint in columns) 35 | { 36 | grid.ColumnDefinitions.Add(new ColumnDefinition 37 | { 38 | Width = constraint.Value, 39 | MinWidth = constraint.MinValue, 40 | MaxWidth = constraint.MaxValue, 41 | }); 42 | } 43 | 44 | foreach (var constraint in rows) 45 | { 46 | grid.RowDefinitions.Add(new RowDefinition 47 | { 48 | Height = constraint.Value, 49 | MinHeight = constraint.MinValue, 50 | MaxHeight = constraint.MaxValue, 51 | }); 52 | } 53 | } 54 | 55 | #endregion 56 | } -------------------------------------------------------------------------------- /src/libs/H.XamlExtensions.Shared/Extensions/Constraint.cs: -------------------------------------------------------------------------------- 1 | using System.Globalization; 2 | 3 | #nullable enable 4 | 5 | namespace H.XamlExtensions; 6 | 7 | public class Constraint 8 | { 9 | public GridLength Value { get; set; } 10 | public double MinValue { get; set; } 11 | public double MaxValue { get; set; } = double.PositiveInfinity; 12 | 13 | public static Constraint Parse(string text) 14 | { 15 | text = text ?? throw new ArgumentNullException(nameof(text)); 16 | 17 | var valueString = text.Contains('[') 18 | ? text.Substring(0, text.IndexOf('[')) 19 | : text; 20 | var minMaxString = text.Contains('[') 21 | ? text.Substring(text.IndexOf('[') + 1).TrimEnd(']') 22 | : string.Empty; 23 | var minString = minMaxString.Contains('-') 24 | ? minMaxString.Substring(0, minMaxString.IndexOf('-')) 25 | : minMaxString; 26 | var maxString = minMaxString.Contains('-') 27 | ? minMaxString.Substring(minMaxString.IndexOf('-') + 1) 28 | : string.Empty; 29 | 30 | var value = GridLengthConverter.ConvertFromInvariantString(valueString); 31 | var minValue = double.TryParse( 32 | minString, 33 | NumberStyles.Any, 34 | CultureInfo.InvariantCulture, 35 | out var minValueResult) 36 | ? minValueResult 37 | : 0.0; 38 | var maxValue = double.TryParse( 39 | maxString, 40 | NumberStyles.Any, 41 | CultureInfo.InvariantCulture, 42 | out var maxValueResult) 43 | ? maxValueResult 44 | : double.PositiveInfinity; 45 | 46 | return new Constraint 47 | { 48 | Value = value, 49 | MinValue = minValue, 50 | MaxValue = maxValue, 51 | }; 52 | } 53 | } -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.WinUI/Package.appxmanifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 13 | 14 | 15 | H.XamlExtensions.Apps.WinUI 16 | H.XamlExtensions.Apps.WinUI 17 | Assets\StoreLogo.png 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /src/apps/Uno/H.XamlExtensions.Apps.Uno.Skia.Wpf/H.XamlExtensions.Apps.Uno.Skia.Wpf.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | WinExe 5 | Exe 6 | net6.0-windows;net4.7.2 7 | true 8 | $(NoWarn);UXAML0002 9 | $(DefineConstants);HAS_WINUI 10 | 11 | 12 | 13 | 14 | <_Parameter1>System.Windows.ResourceDictionaryLocation.None 15 | <_Parameter1_IsLiteral>true 16 | <_Parameter2>System.Windows.ResourceDictionaryLocation.SourceAssembly 17 | <_Parameter2_IsLiteral>true 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /settings.xamlstyler: -------------------------------------------------------------------------------- 1 | { 2 | "AttributesTolerance": 1, 3 | "KeepFirstAttributeOnSameLine": false, 4 | "MaxAttributeCharactersPerLine": 0, 5 | "MaxAttributesPerLine": 1, 6 | "NewlineExemptionElements": "RadialGradientBrush, GradientStop, LinearGradientBrush, ScaleTransform, SkewTransform, RotateTransform, TranslateTransform, Trigger, Condition, Setter", 7 | "SeparateByGroups": false, 8 | "AttributeIndentation": 0, 9 | "AttributeIndentationStyle": 1, 10 | "RemoveDesignTimeReferences": false, 11 | "EnableAttributeReordering": false, 12 | "AttributeOrderingRuleGroups": [ 13 | "x:Class", 14 | "xmlns, xmlns:x", 15 | "xmlns:*", 16 | "x:Key, Key, x:Name, Name, x:Uid, Uid, Title", 17 | "Grid.Row, Grid.RowSpan, Grid.Column, Grid.ColumnSpan, Canvas.Left, Canvas.Top, Canvas.Right, Canvas.Bottom", 18 | "Width, Height, MinWidth, MinHeight, MaxWidth, MaxHeight", 19 | "Margin, Padding, HorizontalAlignment, VerticalAlignment, HorizontalContentAlignment, VerticalContentAlignment, Panel.ZIndex", 20 | "*:*, *", 21 | "PageSource, PageIndex, Offset, Color, TargetName, Property, Value, StartPoint, EndPoint", 22 | "mc:Ignorable, d:IsDataSource, d:LayoutOverrides, d:IsStaticText", 23 | "Storyboard.*, From, To, Duration" 24 | ], 25 | "FirstLineAttributes": "", 26 | "OrderAttributesByName": true, 27 | "PutEndingBracketOnNewLine": true, 28 | "RemoveEndingTagOfEmptyElement": true, 29 | "SpaceBeforeClosingSlash": true, 30 | "RootElementLineBreakRule": 0, 31 | "ReorderVSM": 1, 32 | "ReorderGridChildren": false, 33 | "ReorderCanvasChildren": false, 34 | "ReorderSetters": 0, 35 | "FormatMarkupExtension": true, 36 | "NoNewLineMarkupExtensions": "x:Bind, Binding", 37 | "ThicknessSeparator": 2, 38 | "ThicknessAttributes": "Margin, Padding, BorderThickness, ThumbnailClipMargin", 39 | "FormatOnSave": true, 40 | "CommentPadding": 2, 41 | "IndentSize": 4, 42 | "IndentWithTabs": false 43 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report.yaml: -------------------------------------------------------------------------------- 1 | name: Bug report 2 | description: File a bug report 3 | title: "Bug title" 4 | labels: [bug] 5 | body: 6 | - type: textarea 7 | validations: 8 | required: true 9 | attributes: 10 | label: Describe the bug 11 | description: Please enter a short, clear description of the bug. 12 | 13 | - type: textarea 14 | validations: 15 | required: true 16 | attributes: 17 | label: Steps to reproduce the bug 18 | description: Please provide any required setup and steps to reproduce the behavior. 19 | placeholder: | 20 | 1. Go to '...' 21 | 2. Click on '....' 22 | 23 | - type: textarea 24 | attributes: 25 | label: Expected behavior 26 | description: Please provide a description of what you expected to happen 27 | 28 | - type: textarea 29 | attributes: 30 | label: Screenshots 31 | description: If applicable, add screenshots here to help explain your problem 32 | 33 | - type: textarea 34 | attributes: 35 | label: NuGet package version 36 | description: Specify the version you're using. 37 | 38 | - type: dropdown 39 | attributes: 40 | label: Platform 41 | description: Which platforms did you see the issue on? 42 | multiple: true 43 | options: 44 | - "WPF" 45 | - "Avalonia" 46 | - "UWP" 47 | - "WinUI" 48 | - "Uno" 49 | - "Uno.WinUI" 50 | 51 | - type: dropdown 52 | attributes: 53 | label: IDE 54 | description: Which IDE are you using? 55 | multiple: true 56 | options: 57 | - "Visual Studio 2022-preview" 58 | - "Visual Studio 2022" 59 | - "Visual Studio 2019" 60 | - "Visual Studio 2017" 61 | - "Other" 62 | 63 | - type: textarea 64 | attributes: 65 | label: Additional context 66 | description: Enter any other applicable info here 67 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Uwp/Package.appxmanifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 13 | 14 | 15 | 16 | 17 | H.XamlExtensions.Apps.Uwp 18 | H.XamlExtensions.Apps.Uwp 19 | Assets\StoreLogo.png 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 34 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.WinUI.Shared/H.XamlExtensions.Apps.WinUI.Shared.projitems: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath) 5 | true 6 | 418d1399-62c8-481b-a954-517b189eca70 7 | 8 | 9 | H.XamlExtensions.Apps.WinUI.Shared 10 | 11 | 12 | 13 | Designer 14 | MSBuild:Compile 15 | 16 | 17 | Designer 18 | MSBuild:Compile 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [H.XamlExtensions](https://github.com/HavenDV/H.XamlExtensions/) 2 | 3 | Shortest way to create rows/columns for Grid for WPF/UWP/WinUI/Uno/Avalonia platforms 4 | 5 | ### NuGet 6 | 7 | [![NuGet](https://img.shields.io/nuget/dt/H.XamlExtensions.Wpf.svg?style=flat-square&label=H.XamlExtensions.Wpf)](https://www.nuget.org/packages/H.XamlExtensions.Wpf/) 8 | [![NuGet](https://img.shields.io/nuget/dt/H.XamlExtensions.Uno.svg?style=flat-square&label=H.XamlExtensions.Uno)](https://www.nuget.org/packages/H.XamlExtensions.Uno/) 9 | [![NuGet](https://img.shields.io/nuget/dt/H.XamlExtensions.Uno.WinUI.svg?style=flat-square&label=H.XamlExtensions.Uno.WinUI)](https://www.nuget.org/packages/H.XamlExtensions.Uno.WinUI/) 10 | [![NuGet](https://img.shields.io/nuget/dt/H.XamlExtensions.Uwp.svg?style=flat-square&label=H.XamlExtensions.Uwp)](https://www.nuget.org/packages/H.XamlExtensions.Uwp/) 11 | [![NuGet](https://img.shields.io/nuget/dt/H.XamlExtensions.WinUI.svg?style=flat-square&label=H.XamlExtensions.WinUI)](https://www.nuget.org/packages/H.XamlExtensions.WinUI/) 12 | [![NuGet](https://img.shields.io/nuget/dt/H.XamlExtensions.Avalonia.svg?style=flat-square&label=H.XamlExtensions.Avalonia)](https://www.nuget.org/packages/H.XamlExtensions.Avalonia/) 13 | 14 | ``` 15 | Install-Package H.XamlExtensions.Wpf 16 | Install-Package H.XamlExtensions.Uno 17 | Install-Package H.XamlExtensions.Uno.WinUI 18 | Install-Package H.XamlExtensions.Uwp 19 | Install-Package H.XamlExtensions.WinUI 20 | Install-Package H.XamlExtensions.Avalonia 21 | ``` 22 | 23 | ## Usage 24 | 25 | ### GridExtensions 26 | ``` 27 | // WPF 28 | xmlns:e="clr-namespace:H.XamlExtensions;assembly=H.XamlExtensions.Wpf" 29 | // UWP/WinUI/Uno/Avalonia 30 | xmlns:e="using:H.XamlExtensions" 31 | ``` 32 | ```xml 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | ``` 42 | 43 | ## Contacts 44 | * [mail](mailto:havendv@gmail.com) -------------------------------------------------------------------------------- /src/libs/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | <_Parameter1>false 8 | 9 | 10 | 11 | 12 | true 13 | $(SolutionDir)src\libs\key.snk 14 | 15 | 16 | 17 | Shortest way to create rows/columns for Grid for WPF/UWP/Uno platforms 18 | grid, extensions, columns, rows, uwp, uno, wpf, winui, windowsappsdk, reunion 19 | 20 | 21 | 22 | 1 23 | 0.9.$(BUILD_NUMBER) 24 | $(PACKAGE_RELEASE_NOTES) 25 | true 26 | false 27 | havendv 28 | MIT 29 | nuget_icon.png 30 | README.md 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | all 41 | runtime; build; native; contentfiles; analyzers; buildtransitive 42 | 43 | 44 | 45 | 46 | true 47 | latest 48 | All 49 | $(NoWarn);CA1307 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /src/apps/Uno/H.XamlExtensions.Apps.Uno.WebAssembly/H.XamlExtensions.Apps.Uno.WebAssembly.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Exe 5 | net6.0 6 | $(NoWarn);NU1701;CS8669;UXAML0002;CS1030;Uno0001 7 | $(DefineConstants);HAS_WINUI 8 | disable 9 | false 10 | 11 | 12 | 13 | 14 | $(DefineConstants);TRACE;DEBUG 15 | true 16 | portable 17 | true 18 | 22 | false 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /src/apps/Uno/H.XamlExtensions.Apps.Uno.WebAssembly/wwwroot/web.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Shared/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using H.ReactiveUI.Apps.Views; 2 | using Microsoft.Extensions.Logging; 3 | #if !HAS_WPF 4 | using Windows.ApplicationModel.Activation; 5 | #endif 6 | 7 | #nullable enable 8 | 9 | namespace H.XamlExtensions.Apps; 10 | 11 | public sealed partial class App 12 | { 13 | #region Constructors 14 | 15 | public App() 16 | { 17 | InitializeLogging(); 18 | 19 | #if !HAS_WPF 20 | InitializeComponent(); 21 | #endif 22 | } 23 | 24 | #endregion 25 | 26 | #region Event Handlers 27 | 28 | #if !HAS_WPF 29 | 30 | protected override void OnLaunched(LaunchActivatedEventArgs args) 31 | { 32 | #if HAS_WINUI && !HAS_UNO 33 | var window = new Window(); 34 | #else 35 | var window = Window.Current; 36 | #endif 37 | if (window.Content is not Frame frame) 38 | { 39 | frame = new Frame(); 40 | 41 | window.Content = frame; 42 | } 43 | 44 | #if !HAS_WINUI 45 | if (args.PrelaunchActivated) 46 | { 47 | return; 48 | } 49 | #endif 50 | 51 | if (frame.Content is null) 52 | { 53 | frame.Content = new MainView(); 54 | } 55 | 56 | window.Activate(); 57 | } 58 | 59 | #endif 60 | 61 | /// 62 | /// Configures global Uno Platform logging 63 | /// 64 | private static void InitializeLogging() 65 | { 66 | var factory = LoggerFactory.Create(builder => 67 | { 68 | #if __WASM__ 69 | builder.AddProvider(new global::Uno.Extensions.Logging.WebAssembly.WebAssemblyConsoleLoggerProvider()); 70 | #elif __IOS__ 71 | builder.AddProvider(new global::Uno.Extensions.Logging.OSLogLoggerProvider()); 72 | #elif NETFX_CORE 73 | builder.AddDebug(); 74 | #else 75 | builder.AddConsole(); 76 | #endif 77 | 78 | // Exclude logs below this level 79 | builder.SetMinimumLevel(LogLevel.Information); 80 | 81 | // Default filters for Uno Platform namespaces 82 | builder.AddFilter("Uno", LogLevel.Warning); 83 | builder.AddFilter("Windows", LogLevel.Warning); 84 | builder.AddFilter("Microsoft", LogLevel.Warning); 85 | 86 | // Generic Xaml events 87 | // builder.AddFilter("Windows.UI.Xaml", LogLevel.Debug ); 88 | // builder.AddFilter("Windows.UI.Xaml.VisualStateGroup", LogLevel.Debug ); 89 | // builder.AddFilter("Windows.UI.Xaml.StateTriggerBase", LogLevel.Debug ); 90 | // builder.AddFilter("Windows.UI.Xaml.UIElement", LogLevel.Debug ); 91 | // builder.AddFilter("Windows.UI.Xaml.FrameworkElement", LogLevel.Trace ); 92 | 93 | // Layouter specific messages 94 | // builder.AddFilter("Windows.UI.Xaml.Controls", LogLevel.Debug ); 95 | // builder.AddFilter("Windows.UI.Xaml.Controls.Layouter", LogLevel.Debug ); 96 | // builder.AddFilter("Windows.UI.Xaml.Controls.Panel", LogLevel.Debug ); 97 | 98 | // builder.AddFilter("Windows.Storage", LogLevel.Debug ); 99 | 100 | // Binding related messages 101 | // builder.AddFilter("Windows.UI.Xaml.Data", LogLevel.Debug ); 102 | // builder.AddFilter("Windows.UI.Xaml.Data", LogLevel.Debug ); 103 | 104 | // Binder memory references tracking 105 | // builder.AddFilter("Uno.UI.DataBinding.BinderReferenceHolder", LogLevel.Debug ); 106 | 107 | // RemoteControl and HotReload related 108 | // builder.AddFilter("Uno.UI.RemoteControl", LogLevel.Information); 109 | 110 | // Debug JS interop 111 | // builder.AddFilter("Uno.Foundation.WebAssemblyRuntime", LogLevel.Debug ); 112 | }); 113 | 114 | #if HAS_UNO 115 | global::Uno.Extensions.LogExtensionPoint.AmbientLoggerFactory = factory; 116 | global::Uno.UI.Adapter.Microsoft.Extensions.Logging.LoggingAdapter.Initialize(); 117 | #endif 118 | } 119 | 120 | #endregion 121 | } 122 | -------------------------------------------------------------------------------- /.vsconfig: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0", 3 | "components": [ 4 | "Microsoft.VisualStudio.Component.CoreEditor", 5 | "Microsoft.VisualStudio.Workload.CoreEditor", 6 | "Microsoft.Net.Component.4.8.SDK", 7 | "Microsoft.Net.Component.4.7.2.TargetingPack", 8 | "Microsoft.Net.ComponentGroup.DevelopmentPrerequisites", 9 | "Microsoft.VisualStudio.Component.TypeScript.TSServer", 10 | "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions", 11 | "Microsoft.VisualStudio.Component.JavaScript.TypeScript", 12 | "Microsoft.VisualStudio.Component.JavaScript.Diagnostics", 13 | "Microsoft.VisualStudio.Component.Roslyn.Compiler", 14 | "Microsoft.Component.MSBuild", 15 | "Microsoft.VisualStudio.Component.Roslyn.LanguageServices", 16 | "Microsoft.VisualStudio.Component.TextTemplating", 17 | "Component.Microsoft.VisualStudio.RazorExtension", 18 | "Microsoft.VisualStudio.Component.IISExpress", 19 | "Microsoft.VisualStudio.Component.NuGet", 20 | "Microsoft.VisualStudio.Component.MSODBC.SQL", 21 | "Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime", 22 | "Microsoft.VisualStudio.Component.Common.Azure.Tools", 23 | "Microsoft.VisualStudio.Component.SQL.CLR", 24 | "Microsoft.VisualStudio.Component.MSSQL.CMDLnUtils", 25 | "Microsoft.Component.ClickOnce", 26 | "Microsoft.VisualStudio.Component.ManagedDesktop.Core", 27 | "Microsoft.VisualStudio.Component.SQL.SSDT", 28 | "Microsoft.VisualStudio.Component.SQL.DataSources", 29 | "Component.Microsoft.Web.LibraryManager", 30 | "Component.Microsoft.WebTools.BrowserLink.WebLivePreview", 31 | "Microsoft.VisualStudio.ComponentGroup.Web", 32 | "Microsoft.NetCore.Component.Runtime.6.0", 33 | "Microsoft.NetCore.Component.SDK", 34 | "Microsoft.VisualStudio.Component.FSharp", 35 | "Microsoft.ComponentGroup.ClickOnce.Publish", 36 | "Microsoft.NetCore.Component.DevelopmentTools", 37 | "Microsoft.VisualStudio.Component.FSharp.WebTemplates", 38 | "Microsoft.VisualStudio.Component.DockerTools", 39 | "Microsoft.NetCore.Component.Web", 40 | "Microsoft.VisualStudio.Component.WebDeploy", 41 | "Microsoft.VisualStudio.Component.AppInsights.Tools", 42 | "Microsoft.VisualStudio.Component.Web", 43 | "Microsoft.Net.Component.4.8.TargetingPack", 44 | "Microsoft.Net.ComponentGroup.4.8.DeveloperTools", 45 | "Component.Microsoft.VisualStudio.Web.AzureFunctions", 46 | "Microsoft.VisualStudio.ComponentGroup.AzureFunctions", 47 | "Microsoft.VisualStudio.Component.DiagnosticTools", 48 | "Microsoft.VisualStudio.Component.EntityFramework", 49 | "Microsoft.VisualStudio.Component.Debugger.JustInTime", 50 | "Component.Microsoft.VisualStudio.LiveShare.2022", 51 | "Microsoft.VisualStudio.Component.IntelliCode", 52 | "Microsoft.VisualStudio.Component.AspNet45", 53 | "Microsoft.Net.Component.4.6.2.TargetingPack", 54 | "Microsoft.Net.Component.4.7.1.TargetingPack", 55 | "microsoft.net.runtime.mono.tooling", 56 | "Microsoft.VisualStudio.Component.Azure.ClientLibs", 57 | "Microsoft.VisualStudio.ComponentGroup.Azure.Prerequisites", 58 | "Microsoft.Component.Azure.DataLake.Tools", 59 | "Microsoft.VisualStudio.Component.Azure.ResourceManager.Tools", 60 | "Microsoft.VisualStudio.ComponentGroup.Azure.ResourceManager.Tools", 61 | "Microsoft.VisualStudio.Component.Azure.AuthoringTools", 62 | "Microsoft.VisualStudio.Component.Azure.Waverton.BuildTools", 63 | "Microsoft.VisualStudio.Component.Azure.Compute.Emulator", 64 | "Microsoft.VisualStudio.Component.Azure.Waverton", 65 | "Microsoft.VisualStudio.ComponentGroup.Azure.CloudServices", 66 | "Microsoft.VisualStudio.Component.Azure.ServiceFabric.Tools", 67 | "Microsoft.VisualStudio.Component.VC.CoreIde", 68 | "Microsoft.VisualStudio.Component.Windows10SDK", 69 | "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", 70 | "Microsoft.VisualStudio.Component.Graphics.Tools", 71 | "Microsoft.VisualStudio.Component.Windows10SDK.19041", 72 | "Component.OpenJDK", 73 | "Component.Android.SDK.MAUI", 74 | "Microsoft.VisualStudio.Component.MonoDebugger", 75 | "Microsoft.VisualStudio.Component.Merq", 76 | "Component.Xamarin.RemotedSimulator", 77 | "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine", 78 | "Component.Xamarin", 79 | "maui.core", 80 | "maui.blazor", 81 | "microsoft.net.runtime.android", 82 | "microsoft.net.runtime.android.aot", 83 | "android", 84 | "maui.android", 85 | "Microsoft.VisualStudio.ComponentGroup.Maui.Android", 86 | "runtimes.ios", 87 | "microsoft.net.runtime.ios", 88 | "ios", 89 | "maui.ios", 90 | "Microsoft.VisualStudio.ComponentGroup.Maui.iOS", 91 | "runtimes.maccatalyst", 92 | "microsoft.net.runtime.maccatalyst", 93 | "maccatalyst", 94 | "maui.maccatalyst", 95 | "Microsoft.VisualStudio.ComponentGroup.Maui.MacCatalyst", 96 | "maui.windows", 97 | "Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging", 98 | "Microsoft.VisualStudio.ComponentGroup.Maui.Windows", 99 | "Microsoft.VisualStudio.ComponentGroup.Maui.Blazor", 100 | "Microsoft.VisualStudio.ComponentGroup.Maui.All", 101 | "Microsoft.VisualStudio.Workload.NetCrossPlat", 102 | "Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites", 103 | "Microsoft.ComponentGroup.Blend", 104 | "Microsoft.VisualStudio.Component.DotNetModelBuilder", 105 | "Microsoft.VisualStudio.Workload.ManagedDesktop", 106 | "Microsoft.VisualStudio.Component.VC.Tools.ARM64", 107 | "Microsoft.VisualStudio.Component.Windows11SDK.22000", 108 | "Microsoft.VisualStudio.Component.Windows10SDK.20348", 109 | "Microsoft.VisualStudio.Component.Windows10SDK.18362", 110 | "Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64", 111 | "Microsoft.VisualStudio.Component.UWP.VC.ARM64", 112 | "Microsoft.VisualStudio.Component.VC.Tools.ARM", 113 | "Microsoft.VisualStudio.Component.VC.CoreBuildTools", 114 | "Microsoft.VisualStudio.ComponentGroup.UWP.VC", 115 | "Microsoft.Component.NetFX.Native", 116 | "Microsoft.VisualStudio.ComponentGroup.UWP.NetCoreAndStandard", 117 | "Microsoft.VisualStudio.Component.Graphics", 118 | "Microsoft.VisualStudio.ComponentGroup.UWP.Xamarin", 119 | "Microsoft.VisualStudio.ComponentGroup.UWP.Support", 120 | "Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM", 121 | "Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM64", 122 | "Microsoft.VisualStudio.ComponentGroup.UWP.VC.v142", 123 | "Microsoft.VisualStudio.Workload.Universal", 124 | "Microsoft.Net.ComponentGroup.TargetingPacks.Common", 125 | "Microsoft.VisualStudio.Component.Git", 126 | "Microsoft.NetCore.Component.Runtime.3.1", 127 | "Microsoft.NetCore.Component.Runtime.5.0", 128 | "Microsoft.Net.Component.4.6.1.TargetingPack", 129 | "Microsoft.Net.Component.4.6.1.SDK", 130 | "Microsoft.Net.Component.4.6.2.SDK", 131 | "Microsoft.Net.Component.4.7.1.SDK" 132 | ] 133 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.rsuser 8 | *.suo 9 | *.user 10 | *.userosscache 11 | *.sln.docstates 12 | 13 | # User-specific files (MonoDevelop/Xamarin Studio) 14 | *.userprefs 15 | 16 | # Mono auto generated files 17 | mono_crash.* 18 | 19 | # Build results 20 | [Dd]ebug/ 21 | [Dd]ebugPublic/ 22 | [Rr]elease/ 23 | [Rr]eleases/ 24 | x64/ 25 | x86/ 26 | [Aa][Rr][Mm]/ 27 | [Aa][Rr][Mm]64/ 28 | bld/ 29 | [Bb]in/ 30 | [Oo]bj/ 31 | [Ll]og/ 32 | [Ll]ogs/ 33 | 34 | # Visual Studio 2015/2017 cache/options directory 35 | .vs/ 36 | # Uncomment if you have tasks that create the project's static files in wwwroot 37 | #wwwroot/ 38 | 39 | # Visual Studio 2017 auto generated files 40 | Generated\ Files/ 41 | 42 | # MSTest test Results 43 | [Tt]est[Rr]esult*/ 44 | [Bb]uild[Ll]og.* 45 | 46 | # NUnit 47 | *.VisualState.xml 48 | TestResult.xml 49 | nunit-*.xml 50 | 51 | # Build Results of an ATL Project 52 | [Dd]ebugPS/ 53 | [Rr]eleasePS/ 54 | dlldata.c 55 | 56 | # Benchmark Results 57 | BenchmarkDotNet.Artifacts/ 58 | 59 | # .NET Core 60 | project.lock.json 61 | project.fragment.lock.json 62 | artifacts/ 63 | 64 | # StyleCop 65 | StyleCopReport.xml 66 | 67 | # Files built by Visual Studio 68 | *_i.c 69 | *_p.c 70 | *_h.h 71 | *.ilk 72 | *.meta 73 | *.obj 74 | *.iobj 75 | *.pch 76 | *.pdb 77 | *.ipdb 78 | *.pgc 79 | *.pgd 80 | *.rsp 81 | *.sbr 82 | *.tlb 83 | *.tli 84 | *.tlh 85 | *.tmp 86 | *.tmp_proj 87 | *_wpftmp.csproj 88 | *.log 89 | *.vspscc 90 | *.vssscc 91 | .builds 92 | *.pidb 93 | *.svclog 94 | *.scc 95 | 96 | # Chutzpah Test files 97 | _Chutzpah* 98 | 99 | # Visual C++ cache files 100 | ipch/ 101 | *.aps 102 | *.ncb 103 | *.opendb 104 | *.opensdf 105 | *.sdf 106 | *.cachefile 107 | *.VC.db 108 | *.VC.VC.opendb 109 | 110 | # Visual Studio profiler 111 | *.psess 112 | *.vsp 113 | *.vspx 114 | *.sap 115 | 116 | # Visual Studio Trace Files 117 | *.e2e 118 | 119 | # TFS 2012 Local Workspace 120 | $tf/ 121 | 122 | # Guidance Automation Toolkit 123 | *.gpState 124 | 125 | # ReSharper is a .NET coding add-in 126 | _ReSharper*/ 127 | *.[Rr]e[Ss]harper 128 | *.DotSettings.user 129 | 130 | # TeamCity is a build add-in 131 | _TeamCity* 132 | 133 | # DotCover is a Code Coverage Tool 134 | *.dotCover 135 | 136 | # AxoCover is a Code Coverage Tool 137 | .axoCover/* 138 | !.axoCover/settings.json 139 | 140 | # Visual Studio code coverage results 141 | *.coverage 142 | *.coveragexml 143 | 144 | # NCrunch 145 | _NCrunch_* 146 | .*crunch*.local.xml 147 | nCrunchTemp_* 148 | 149 | # MightyMoose 150 | *.mm.* 151 | AutoTest.Net/ 152 | 153 | # Web workbench (sass) 154 | .sass-cache/ 155 | 156 | # Installshield output folder 157 | [Ee]xpress/ 158 | 159 | # DocProject is a documentation generator add-in 160 | DocProject/buildhelp/ 161 | DocProject/Help/*.HxT 162 | DocProject/Help/*.HxC 163 | DocProject/Help/*.hhc 164 | DocProject/Help/*.hhk 165 | DocProject/Help/*.hhp 166 | DocProject/Help/Html2 167 | DocProject/Help/html 168 | 169 | # Click-Once directory 170 | publish/ 171 | 172 | # Publish Web Output 173 | *.[Pp]ublish.xml 174 | *.azurePubxml 175 | # Note: Comment the next line if you want to checkin your web deploy settings, 176 | # but database connection strings (with potential passwords) will be unencrypted 177 | *.pubxml 178 | *.publishproj 179 | 180 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 181 | # checkin your Azure Web App publish settings, but sensitive information contained 182 | # in these scripts will be unencrypted 183 | PublishScripts/ 184 | 185 | # NuGet Packages 186 | *.nupkg 187 | # NuGet Symbol Packages 188 | *.snupkg 189 | # The packages folder can be ignored because of Package Restore 190 | **/[Pp]ackages/* 191 | # except build/, which is used as an MSBuild target. 192 | !**/[Pp]ackages/build/ 193 | # Uncomment if necessary however generally it will be regenerated when needed 194 | #!**/[Pp]ackages/repositories.config 195 | # NuGet v3's project.json files produces more ignorable files 196 | *.nuget.props 197 | *.nuget.targets 198 | 199 | # Microsoft Azure Build Output 200 | csx/ 201 | *.build.csdef 202 | 203 | # Microsoft Azure Emulator 204 | ecf/ 205 | rcf/ 206 | 207 | # Windows Store app package directories and files 208 | AppPackages/ 209 | BundleArtifacts/ 210 | Package.StoreAssociation.xml 211 | _pkginfo.txt 212 | *.appx 213 | *.appxbundle 214 | *.appxupload 215 | 216 | # Visual Studio cache files 217 | # files ending in .cache can be ignored 218 | *.[Cc]ache 219 | # but keep track of directories ending in .cache 220 | !?*.[Cc]ache/ 221 | 222 | # Others 223 | ClientBin/ 224 | ~$* 225 | *~ 226 | *.dbmdl 227 | *.dbproj.schemaview 228 | *.jfm 229 | *.pfx 230 | *.publishsettings 231 | orleans.codegen.cs 232 | 233 | # Including strong name files can present a security risk 234 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 235 | #*.snk 236 | 237 | # Since there are multiple workflows, uncomment next line to ignore bower_components 238 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 239 | #bower_components/ 240 | 241 | # RIA/Silverlight projects 242 | Generated_Code/ 243 | 244 | # Backup & report files from converting an old project file 245 | # to a newer Visual Studio version. Backup files are not needed, 246 | # because we have git ;-) 247 | _UpgradeReport_Files/ 248 | Backup*/ 249 | UpgradeLog*.XML 250 | UpgradeLog*.htm 251 | ServiceFabricBackup/ 252 | *.rptproj.bak 253 | 254 | # SQL Server files 255 | *.mdf 256 | *.ldf 257 | *.ndf 258 | 259 | # Business Intelligence projects 260 | *.rdl.data 261 | *.bim.layout 262 | *.bim_*.settings 263 | *.rptproj.rsuser 264 | *- [Bb]ackup.rdl 265 | *- [Bb]ackup ([0-9]).rdl 266 | *- [Bb]ackup ([0-9][0-9]).rdl 267 | 268 | # Microsoft Fakes 269 | FakesAssemblies/ 270 | 271 | # GhostDoc plugin setting file 272 | *.GhostDoc.xml 273 | 274 | # Node.js Tools for Visual Studio 275 | .ntvs_analysis.dat 276 | node_modules/ 277 | 278 | # Visual Studio 6 build log 279 | *.plg 280 | 281 | # Visual Studio 6 workspace options file 282 | *.opt 283 | 284 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 285 | *.vbw 286 | 287 | # Visual Studio LightSwitch build output 288 | **/*.HTMLClient/GeneratedArtifacts 289 | **/*.DesktopClient/GeneratedArtifacts 290 | **/*.DesktopClient/ModelManifest.xml 291 | **/*.Server/GeneratedArtifacts 292 | **/*.Server/ModelManifest.xml 293 | _Pvt_Extensions 294 | 295 | # Paket dependency manager 296 | .paket/paket.exe 297 | paket-files/ 298 | 299 | # FAKE - F# Make 300 | .fake/ 301 | 302 | # CodeRush personal settings 303 | .cr/personal 304 | 305 | # Python Tools for Visual Studio (PTVS) 306 | __pycache__/ 307 | *.pyc 308 | 309 | # Cake - Uncomment if you are using it 310 | # tools/** 311 | # !tools/packages.config 312 | 313 | # Tabs Studio 314 | *.tss 315 | 316 | # Telerik's JustMock configuration file 317 | *.jmconfig 318 | 319 | # BizTalk build output 320 | *.btp.cs 321 | *.btm.cs 322 | *.odx.cs 323 | *.xsd.cs 324 | 325 | # OpenCover UI analysis results 326 | OpenCover/ 327 | 328 | # Azure Stream Analytics local run output 329 | ASALocalRun/ 330 | 331 | # MSBuild Binary and Structured Log 332 | *.binlog 333 | 334 | # NVidia Nsight GPU debugger configuration file 335 | *.nvuser 336 | 337 | # MFractors (Xamarin productivity tool) working folder 338 | .mfractor/ 339 | 340 | # Local History for Visual Studio 341 | .localhistory/ 342 | 343 | # BeatPulse healthcheck temp database 344 | healthchecksdb 345 | 346 | # Backup folder for Package Reference Convert tool in Visual Studio 2017 347 | MigrationBackup/ 348 | 349 | # Ionide (cross platform F# VS Code tools) working folder 350 | .ionide/ 351 | -------------------------------------------------------------------------------- /src/apps/H.XamlExtensions.Apps.Uwp/H.XamlExtensions.Apps.Uwp.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 6.0.0 7 | 8 | 9 | 6.0.0 10 | 11 | 12 | 17 | 6.2.14 18 | 19 | 20 | 2.8.0 21 | 22 | 23 | 18.3.1 24 | 25 | 26 | 4.4.13 27 | 28 | 29 | 30 | 31 | true 32 | Debug 33 | x86 34 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4} 35 | AppContainerExe 36 | Properties 37 | H.XamlExtensions.Apps 38 | H.XamlExtensions.Apps.Uwp 39 | en-US 40 | UAP 41 | 10.0.18362.0 42 | 10.0.18362.0 43 | 14 44 | 512 45 | {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 46 | H.XamlExtensions.Apps.Uwp_TemporaryKey.pfx 47 | 00F8953E642F1370BA46C2A1FF4E26CB59B873AA 48 | True 49 | x86|x64|arm 50 | preview 51 | enable 52 | $(NoWarn);MSB3277;CS8305 53 | $(NoWarn);2008;CS8669;Uno0001 54 | 55 | 56 | true 57 | bin\x86\Debug\ 58 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 59 | full 60 | x86 61 | false 62 | prompt 63 | true 64 | 65 | 66 | bin\x86\Release\ 67 | TRACE;NETFX_CORE;WINDOWS_UWP 68 | true 69 | pdbonly 70 | x86 71 | false 72 | prompt 73 | true 74 | false 75 | 76 | 77 | true 78 | bin\ARM\Debug\ 79 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 80 | full 81 | ARM 82 | false 83 | prompt 84 | true 85 | 86 | 87 | bin\ARM\Release\ 88 | TRACE;NETFX_CORE;WINDOWS_UWP 89 | true 90 | pdbonly 91 | ARM 92 | false 93 | prompt 94 | true 95 | false 96 | 97 | 98 | true 99 | bin\x64\Debug\ 100 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 101 | full 102 | x64 103 | false 104 | prompt 105 | true 106 | 107 | 108 | bin\x64\Release\ 109 | TRACE;NETFX_CORE;WINDOWS_UWP 110 | true 111 | pdbonly 112 | x64 113 | false 114 | prompt 115 | true 116 | false 117 | 118 | 119 | 120 | 121 | 122 | 123 | Designer 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | {16a17957-6de3-4874-b0b6-08404c23fbbe} 139 | H.XamlExtensions.Uwp 140 | 141 | 142 | 143 | 144 | 145 | 14.0 146 | 147 | 148 | 155 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # Rules in this file were initially inferred by Visual Studio IntelliCode from the C:\Users\haven\source\repos\DedooseV2\Dedoose.Apps codebase based on best match to current usage at 6/14/2021 2 | # You can modify the rules from these initially generated values to suit your own policies 3 | # You can learn more about editorconfig here: https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference 4 | [*.cs] 5 | 6 | 7 | #Core editorconfig formatting - indentation 8 | 9 | #use soft tabs (spaces) for indentation 10 | indent_style = space 11 | 12 | #Formatting - new line options 13 | 14 | #place else statements on a new line 15 | csharp_new_line_before_else = true 16 | #require members of object intializers to be on separate lines 17 | csharp_new_line_before_members_in_object_initializers = true 18 | #require braces to be on a new line for lambdas, object_collection_array_initializers, types, methods, and control_blocks (also known as "Allman" style) 19 | csharp_new_line_before_open_brace = all 20 | 21 | #Formatting - organize using options 22 | 23 | #sort System.* using directives alphabetically, and place them before other usings 24 | dotnet_sort_system_directives_first = true 25 | 26 | #Formatting - spacing options 27 | 28 | #require NO space between a cast and the value 29 | csharp_space_after_cast = false 30 | #require a space before the colon for bases or interfaces in a type declaration 31 | csharp_space_after_colon_in_inheritance_clause = true 32 | #require a space after a keyword in a control flow statement such as a for loop 33 | csharp_space_after_keywords_in_control_flow_statements = true 34 | #require a space before the colon for bases or interfaces in a type declaration 35 | csharp_space_before_colon_in_inheritance_clause = true 36 | #remove space within empty argument list parentheses 37 | csharp_space_between_method_call_empty_parameter_list_parentheses = false 38 | #remove space between method call name and opening parenthesis 39 | csharp_space_between_method_call_name_and_opening_parenthesis = false 40 | #do not place space characters after the opening parenthesis and before the closing parenthesis of a method call 41 | csharp_space_between_method_call_parameter_list_parentheses = false 42 | #remove space within empty parameter list parentheses for a method declaration 43 | csharp_space_between_method_declaration_empty_parameter_list_parentheses = false 44 | #place a space character after the opening parenthesis and before the closing parenthesis of a method declaration parameter list. 45 | csharp_space_between_method_declaration_parameter_list_parentheses = false 46 | 47 | #Formatting - wrapping options 48 | 49 | #leave code block on single line 50 | csharp_preserve_single_line_blocks = true 51 | 52 | #Style - Code block preferences 53 | 54 | #prefer curly braces even for one line of code 55 | csharp_prefer_braces = true:suggestion 56 | 57 | #Style - expression bodied member options 58 | 59 | #prefer block bodies for methods 60 | csharp_style_expression_bodied_methods = false:suggestion 61 | #prefer expression-bodied members for properties 62 | csharp_style_expression_bodied_properties = true:suggestion 63 | 64 | #Style - expression level options 65 | 66 | #prefer out variables to be declared inline in the argument list of a method call when possible 67 | csharp_style_inlined_variable_declaration = true:suggestion 68 | #prefer the language keyword for member access expressions, instead of the type name, for types that have a keyword to represent them 69 | dotnet_style_predefined_type_for_member_access = true:suggestion 70 | 71 | #Style - Expression-level preferences 72 | 73 | #prefer default over default(T) 74 | csharp_prefer_simple_default_expression = true:suggestion 75 | #prefer objects to be initialized using object initializers when possible 76 | dotnet_style_object_initializer = true:suggestion 77 | #prefer inferred tuple element names 78 | dotnet_style_prefer_inferred_tuple_names = true:suggestion 79 | 80 | #Style - implicit and explicit types 81 | 82 | #prefer var over explicit type in all cases, unless overridden by another code style rule 83 | csharp_style_var_elsewhere = true:suggestion 84 | #prefer var is used to declare variables with built-in system types such as int 85 | csharp_style_var_for_built_in_types = true:suggestion 86 | #prefer var when the type is already mentioned on the right-hand side of a declaration expression 87 | csharp_style_var_when_type_is_apparent = true:suggestion 88 | 89 | #Style - language keyword and framework type options 90 | 91 | #prefer the language keyword for local variables, method parameters, and class members, instead of the type name, for types that have a keyword to represent them 92 | dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion 93 | 94 | #Style - modifier options 95 | 96 | #do not prefer accessibility modifiers to be specified 97 | dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion 98 | 99 | #Style - Modifier preferences 100 | 101 | #when this rule is set to a list of modifiers, prefer the specified ordering. 102 | csharp_preferred_modifier_order = public,private,protected,internal,static,abstract,sealed,async,override,readonly:suggestion 103 | 104 | #Style - Pattern matching 105 | 106 | #prefer pattern matching instead of is expression with type casts 107 | csharp_style_pattern_matching_over_as_with_null_check = true:suggestion 108 | 109 | #Style - qualification options 110 | 111 | #prefer fields not to be prefaced with this. or Me. in Visual Basic 112 | dotnet_style_qualification_for_field = false:suggestion 113 | #prefer methods not to be prefaced with this. or Me. in Visual Basic 114 | dotnet_style_qualification_for_method = false:suggestion 115 | #prefer properties not to be prefaced with this. or Me. in Visual Basic 116 | dotnet_style_qualification_for_property = false:suggestion 117 | csharp_style_unused_value_assignment_preference= discard_variable:silent 118 | csharp_style_unused_value_assignment_statement_preference=discard_variable:silent 119 | 120 | # IDE0130: Namespace does not match folder structure 121 | dotnet_style_namespace_match_folder = false 122 | 123 | # IDE0160: Convert to block scoped namespace 124 | csharp_style_namespace_declarations = file_scoped:silent 125 | csharp_indent_labels = one_less_than_current 126 | csharp_using_directive_placement = outside_namespace:silent 127 | csharp_prefer_simple_using_statement = true:suggestion 128 | csharp_style_prefer_method_group_conversion = true:silent 129 | csharp_style_expression_bodied_constructors = false:silent 130 | csharp_style_expression_bodied_operators = false:silent 131 | csharp_style_expression_bodied_indexers = true:silent 132 | csharp_style_expression_bodied_accessors = true:silent 133 | csharp_style_expression_bodied_lambdas = true:silent 134 | csharp_style_expression_bodied_local_functions = false:silent 135 | csharp_style_throw_expression = true:suggestion 136 | csharp_style_prefer_null_check_over_type_check = true:suggestion 137 | csharp_style_prefer_local_over_anonymous_function = true:suggestion 138 | csharp_style_prefer_index_operator = true:suggestion 139 | csharp_style_prefer_range_operator = true:suggestion 140 | csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion 141 | csharp_style_prefer_tuple_swap = true:suggestion 142 | csharp_style_deconstructed_variable_declaration = true:suggestion 143 | csharp_style_unused_value_expression_statement_preference = discard_variable:silent 144 | csharp_space_around_binary_operators = before_and_after 145 | 146 | [*.{cs,vb}] 147 | #### Naming styles #### 148 | 149 | # Naming rules 150 | 151 | dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion 152 | dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface 153 | dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i 154 | 155 | dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion 156 | dotnet_naming_rule.types_should_be_pascal_case.symbols = types 157 | dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case 158 | 159 | dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion 160 | dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members 161 | dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case 162 | 163 | # Symbol specifications 164 | 165 | dotnet_naming_symbols.interface.applicable_kinds = interface 166 | dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected 167 | dotnet_naming_symbols.interface.required_modifiers = 168 | 169 | dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum 170 | dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected 171 | dotnet_naming_symbols.types.required_modifiers = 172 | 173 | dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method 174 | dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected 175 | dotnet_naming_symbols.non_field_members.required_modifiers = 176 | 177 | # Naming styles 178 | 179 | dotnet_naming_style.begins_with_i.required_prefix = I 180 | dotnet_naming_style.begins_with_i.required_suffix = 181 | dotnet_naming_style.begins_with_i.word_separator = 182 | dotnet_naming_style.begins_with_i.capitalization = pascal_case 183 | 184 | dotnet_naming_style.pascal_case.required_prefix = 185 | dotnet_naming_style.pascal_case.required_suffix = 186 | dotnet_naming_style.pascal_case.word_separator = 187 | dotnet_naming_style.pascal_case.capitalization = pascal_case 188 | 189 | dotnet_naming_style.pascal_case.required_prefix = 190 | dotnet_naming_style.pascal_case.required_suffix = 191 | dotnet_naming_style.pascal_case.word_separator = 192 | dotnet_naming_style.pascal_case.capitalization = pascal_case 193 | dotnet_style_operator_placement_when_wrapping = beginning_of_line 194 | tab_width = 4 195 | indent_size = 4 196 | end_of_line = crlf 197 | dotnet_style_coalesce_expression = true:suggestion 198 | dotnet_style_null_propagation = true:suggestion 199 | dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion 200 | dotnet_style_prefer_auto_properties = true:silent 201 | dotnet_style_object_initializer = true:suggestion 202 | dotnet_style_collection_initializer = true:suggestion 203 | dotnet_style_prefer_simplified_boolean_expressions = true:suggestion 204 | dotnet_style_prefer_conditional_expression_over_assignment = true:silent 205 | dotnet_style_prefer_conditional_expression_over_return = true:silent 206 | dotnet_style_explicit_tuple_names = true:suggestion 207 | dotnet_style_prefer_inferred_tuple_names = true:suggestion 208 | dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion 209 | dotnet_style_prefer_compound_assignment = true:suggestion 210 | dotnet_style_prefer_simplified_interpolation = true:suggestion 211 | dotnet_style_namespace_match_folder = false:suggestion 212 | -------------------------------------------------------------------------------- /H.XamlExtensions.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.0.31717.71 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libs", "libs", "{A81088C2-A6AF-4CB6-8F36-DF8C0E6D45B3}" 7 | ProjectSection(SolutionItems) = preProject 8 | src\libs\Directory.Build.props = src\libs\Directory.Build.props 9 | EndProjectSection 10 | EndProject 11 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "H.XamlExtensions.Wpf", "src\libs\H.XamlExtensions.Wpf\H.XamlExtensions.Wpf.csproj", "{65786107-E646-452E-B899-EDD26D09E401}" 12 | EndProject 13 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{9972D12E-4770-4883-AE5D-98412271DE83}" 14 | ProjectSection(SolutionItems) = preProject 15 | .gitignore = .gitignore 16 | src\Directory.Build.props = src\Directory.Build.props 17 | .github\workflows\dotnet.yml = .github\workflows\dotnet.yml 18 | global.json = global.json 19 | LICENSE = LICENSE 20 | README.md = README.md 21 | EndProjectSection 22 | EndProject 23 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "H.XamlExtensions.Uwp", "src\libs\H.XamlExtensions.Uwp\H.XamlExtensions.Uwp.csproj", "{16A17957-6DE3-4874-B0B6-08404C23FBBE}" 24 | EndProject 25 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "H.XamlExtensions.Uno", "src\libs\H.XamlExtensions.Uno\H.XamlExtensions.Uno.csproj", "{F5EB3A73-1D93-42F7-9757-26B486D74592}" 26 | EndProject 27 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "apps", "apps", "{464A41EC-E4D1-4BC3-93BD-A48E3449A4BD}" 28 | EndProject 29 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "H.XamlExtensions.Apps.Wpf", "src\apps\H.XamlExtensions.Apps.Wpf\H.XamlExtensions.Apps.Wpf.csproj", "{8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}" 30 | EndProject 31 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "H.XamlExtensions.Uno.WinUI", "src\libs\H.XamlExtensions.Uno.WinUI\H.XamlExtensions.Uno.WinUI.csproj", "{AB635967-D2FF-4A55-A319-109099DE8FF4}" 32 | EndProject 33 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "H.XamlExtensions.Apps.WinUI", "src\apps\H.XamlExtensions.Apps.WinUI\H.XamlExtensions.Apps.WinUI.csproj", "{FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}" 34 | EndProject 35 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "H.XamlExtensions.WinUI", "src\libs\H.XamlExtensions.WinUI\H.XamlExtensions.WinUI.csproj", "{682D6FB2-C18B-4522-8B33-567FCC8647FE}" 36 | EndProject 37 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "H.XamlExtensions.Avalonia", "src\libs\H.XamlExtensions.Avalonia\H.XamlExtensions.Avalonia.csproj", "{BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}" 38 | EndProject 39 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "H.XamlExtensions.Apps.Avalonia", "src\apps\H.XamlExtensions.Apps.Avalonia\H.XamlExtensions.Apps.Avalonia.csproj", "{D457A105-C15B-4461-9AB8-5D40A71CCF7B}" 40 | EndProject 41 | Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "H.XamlExtensions.Shared", "src\libs\H.XamlExtensions.Shared\H.XamlExtensions.Shared.shproj", "{F497B163-E46E-4EA6-9E41-BB0C25CA6272}" 42 | EndProject 43 | Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "H.XamlExtensions.Apps.WinUI.Shared", "src\apps\H.XamlExtensions.Apps.WinUI.Shared\H.XamlExtensions.Apps.WinUI.Shared.shproj", "{418D1399-62C8-481B-A954-517B189ECA70}" 44 | EndProject 45 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "H.XamlExtensions.Apps.Uwp", "src\apps\H.XamlExtensions.Apps.Uwp\H.XamlExtensions.Apps.Uwp.csproj", "{2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}" 46 | EndProject 47 | Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "H.XamlExtensions.Apps.Shared", "src\apps\H.XamlExtensions.Apps.Shared\H.XamlExtensions.Apps.Shared.shproj", "{B2C9A032-9670-421E-A413-7C7F504F5B55}" 48 | EndProject 49 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Uno", "Uno", "{BFAF190F-6B29-4A28-BBFF-4D0AD474DB14}" 50 | EndProject 51 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "H.XamlExtensions.Apps.Uno.Skia.Wpf", "src\apps\Uno\H.XamlExtensions.Apps.Uno.Skia.Wpf\H.XamlExtensions.Apps.Uno.Skia.Wpf.csproj", "{BD75A1F4-A81C-4068-902B-AD77F256E50F}" 52 | EndProject 53 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "H.XamlExtensions.Apps.Uno.WebAssembly", "src\apps\Uno\H.XamlExtensions.Apps.Uno.WebAssembly\H.XamlExtensions.Apps.Uno.WebAssembly.csproj", "{B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}" 54 | EndProject 55 | Global 56 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 57 | Debug|Any CPU = Debug|Any CPU 58 | Debug|ARM = Debug|ARM 59 | Debug|arm64 = Debug|arm64 60 | Debug|x64 = Debug|x64 61 | Debug|x86 = Debug|x86 62 | Release|Any CPU = Release|Any CPU 63 | Release|ARM = Release|ARM 64 | Release|arm64 = Release|arm64 65 | Release|x64 = Release|x64 66 | Release|x86 = Release|x86 67 | EndGlobalSection 68 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 69 | {65786107-E646-452E-B899-EDD26D09E401}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 70 | {65786107-E646-452E-B899-EDD26D09E401}.Debug|Any CPU.Build.0 = Debug|Any CPU 71 | {65786107-E646-452E-B899-EDD26D09E401}.Debug|ARM.ActiveCfg = Debug|Any CPU 72 | {65786107-E646-452E-B899-EDD26D09E401}.Debug|ARM.Build.0 = Debug|Any CPU 73 | {65786107-E646-452E-B899-EDD26D09E401}.Debug|arm64.ActiveCfg = Debug|Any CPU 74 | {65786107-E646-452E-B899-EDD26D09E401}.Debug|arm64.Build.0 = Debug|Any CPU 75 | {65786107-E646-452E-B899-EDD26D09E401}.Debug|x64.ActiveCfg = Debug|Any CPU 76 | {65786107-E646-452E-B899-EDD26D09E401}.Debug|x64.Build.0 = Debug|Any CPU 77 | {65786107-E646-452E-B899-EDD26D09E401}.Debug|x86.ActiveCfg = Debug|Any CPU 78 | {65786107-E646-452E-B899-EDD26D09E401}.Debug|x86.Build.0 = Debug|Any CPU 79 | {65786107-E646-452E-B899-EDD26D09E401}.Release|Any CPU.ActiveCfg = Release|Any CPU 80 | {65786107-E646-452E-B899-EDD26D09E401}.Release|Any CPU.Build.0 = Release|Any CPU 81 | {65786107-E646-452E-B899-EDD26D09E401}.Release|ARM.ActiveCfg = Release|Any CPU 82 | {65786107-E646-452E-B899-EDD26D09E401}.Release|ARM.Build.0 = Release|Any CPU 83 | {65786107-E646-452E-B899-EDD26D09E401}.Release|arm64.ActiveCfg = Release|Any CPU 84 | {65786107-E646-452E-B899-EDD26D09E401}.Release|arm64.Build.0 = Release|Any CPU 85 | {65786107-E646-452E-B899-EDD26D09E401}.Release|x64.ActiveCfg = Release|Any CPU 86 | {65786107-E646-452E-B899-EDD26D09E401}.Release|x64.Build.0 = Release|Any CPU 87 | {65786107-E646-452E-B899-EDD26D09E401}.Release|x86.ActiveCfg = Release|Any CPU 88 | {65786107-E646-452E-B899-EDD26D09E401}.Release|x86.Build.0 = Release|Any CPU 89 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 90 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Debug|Any CPU.Build.0 = Debug|Any CPU 91 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Debug|ARM.ActiveCfg = Debug|Any CPU 92 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Debug|ARM.Build.0 = Debug|Any CPU 93 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Debug|arm64.ActiveCfg = Debug|Any CPU 94 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Debug|arm64.Build.0 = Debug|Any CPU 95 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Debug|x64.ActiveCfg = Debug|Any CPU 96 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Debug|x64.Build.0 = Debug|Any CPU 97 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Debug|x86.ActiveCfg = Debug|Any CPU 98 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Debug|x86.Build.0 = Debug|Any CPU 99 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Release|Any CPU.ActiveCfg = Release|Any CPU 100 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Release|Any CPU.Build.0 = Release|Any CPU 101 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Release|ARM.ActiveCfg = Release|Any CPU 102 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Release|ARM.Build.0 = Release|Any CPU 103 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Release|arm64.ActiveCfg = Release|Any CPU 104 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Release|arm64.Build.0 = Release|Any CPU 105 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Release|x64.ActiveCfg = Release|Any CPU 106 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Release|x64.Build.0 = Release|Any CPU 107 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Release|x86.ActiveCfg = Release|Any CPU 108 | {16A17957-6DE3-4874-B0B6-08404C23FBBE}.Release|x86.Build.0 = Release|Any CPU 109 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 110 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Debug|Any CPU.Build.0 = Debug|Any CPU 111 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Debug|ARM.ActiveCfg = Debug|Any CPU 112 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Debug|ARM.Build.0 = Debug|Any CPU 113 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Debug|arm64.ActiveCfg = Debug|Any CPU 114 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Debug|arm64.Build.0 = Debug|Any CPU 115 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Debug|x64.ActiveCfg = Debug|Any CPU 116 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Debug|x64.Build.0 = Debug|Any CPU 117 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Debug|x86.ActiveCfg = Debug|Any CPU 118 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Debug|x86.Build.0 = Debug|Any CPU 119 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Release|Any CPU.ActiveCfg = Release|Any CPU 120 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Release|Any CPU.Build.0 = Release|Any CPU 121 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Release|ARM.ActiveCfg = Release|Any CPU 122 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Release|ARM.Build.0 = Release|Any CPU 123 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Release|arm64.ActiveCfg = Release|Any CPU 124 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Release|arm64.Build.0 = Release|Any CPU 125 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Release|x64.ActiveCfg = Release|Any CPU 126 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Release|x64.Build.0 = Release|Any CPU 127 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Release|x86.ActiveCfg = Release|Any CPU 128 | {F5EB3A73-1D93-42F7-9757-26B486D74592}.Release|x86.Build.0 = Release|Any CPU 129 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 130 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Debug|Any CPU.Build.0 = Debug|Any CPU 131 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Debug|ARM.ActiveCfg = Debug|Any CPU 132 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Debug|ARM.Build.0 = Debug|Any CPU 133 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Debug|arm64.ActiveCfg = Debug|Any CPU 134 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Debug|arm64.Build.0 = Debug|Any CPU 135 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Debug|x64.ActiveCfg = Debug|Any CPU 136 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Debug|x64.Build.0 = Debug|Any CPU 137 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Debug|x86.ActiveCfg = Debug|Any CPU 138 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Debug|x86.Build.0 = Debug|Any CPU 139 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Release|Any CPU.ActiveCfg = Release|Any CPU 140 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Release|Any CPU.Build.0 = Release|Any CPU 141 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Release|ARM.ActiveCfg = Release|Any CPU 142 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Release|ARM.Build.0 = Release|Any CPU 143 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Release|arm64.ActiveCfg = Release|Any CPU 144 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Release|arm64.Build.0 = Release|Any CPU 145 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Release|x64.ActiveCfg = Release|Any CPU 146 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Release|x64.Build.0 = Release|Any CPU 147 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Release|x86.ActiveCfg = Release|Any CPU 148 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F}.Release|x86.Build.0 = Release|Any CPU 149 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 150 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Debug|Any CPU.Build.0 = Debug|Any CPU 151 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Debug|ARM.ActiveCfg = Debug|Any CPU 152 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Debug|ARM.Build.0 = Debug|Any CPU 153 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Debug|arm64.ActiveCfg = Debug|Any CPU 154 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Debug|arm64.Build.0 = Debug|Any CPU 155 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Debug|x64.ActiveCfg = Debug|Any CPU 156 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Debug|x64.Build.0 = Debug|Any CPU 157 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Debug|x86.ActiveCfg = Debug|Any CPU 158 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Debug|x86.Build.0 = Debug|Any CPU 159 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Release|Any CPU.ActiveCfg = Release|Any CPU 160 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Release|Any CPU.Build.0 = Release|Any CPU 161 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Release|ARM.ActiveCfg = Release|Any CPU 162 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Release|ARM.Build.0 = Release|Any CPU 163 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Release|arm64.ActiveCfg = Release|Any CPU 164 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Release|arm64.Build.0 = Release|Any CPU 165 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Release|x64.ActiveCfg = Release|Any CPU 166 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Release|x64.Build.0 = Release|Any CPU 167 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Release|x86.ActiveCfg = Release|Any CPU 168 | {AB635967-D2FF-4A55-A319-109099DE8FF4}.Release|x86.Build.0 = Release|Any CPU 169 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Debug|Any CPU.ActiveCfg = Debug|x64 170 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Debug|Any CPU.Build.0 = Debug|x64 171 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Debug|Any CPU.Deploy.0 = Debug|x64 172 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Debug|ARM.ActiveCfg = Debug|x64 173 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Debug|ARM.Build.0 = Debug|x64 174 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Debug|arm64.ActiveCfg = Debug|arm64 175 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Debug|arm64.Build.0 = Debug|arm64 176 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Debug|x64.ActiveCfg = Debug|x64 177 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Debug|x64.Build.0 = Debug|x64 178 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Debug|x86.ActiveCfg = Debug|x86 179 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Debug|x86.Build.0 = Debug|x86 180 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Release|Any CPU.ActiveCfg = Release|x64 181 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Release|Any CPU.Build.0 = Release|x64 182 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Release|ARM.ActiveCfg = Release|x64 183 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Release|ARM.Build.0 = Release|x64 184 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Release|arm64.ActiveCfg = Release|arm64 185 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Release|arm64.Build.0 = Release|arm64 186 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Release|x64.ActiveCfg = Release|x64 187 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Release|x64.Build.0 = Release|x64 188 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Release|x86.ActiveCfg = Release|x86 189 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB}.Release|x86.Build.0 = Release|x86 190 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 191 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Debug|Any CPU.Build.0 = Debug|Any CPU 192 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Debug|ARM.ActiveCfg = Debug|Any CPU 193 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Debug|ARM.Build.0 = Debug|Any CPU 194 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Debug|arm64.ActiveCfg = Debug|Any CPU 195 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Debug|arm64.Build.0 = Debug|Any CPU 196 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Debug|x64.ActiveCfg = Debug|Any CPU 197 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Debug|x64.Build.0 = Debug|Any CPU 198 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Debug|x86.ActiveCfg = Debug|Any CPU 199 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Debug|x86.Build.0 = Debug|Any CPU 200 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Release|Any CPU.ActiveCfg = Release|Any CPU 201 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Release|Any CPU.Build.0 = Release|Any CPU 202 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Release|ARM.ActiveCfg = Release|Any CPU 203 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Release|ARM.Build.0 = Release|Any CPU 204 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Release|arm64.ActiveCfg = Release|Any CPU 205 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Release|arm64.Build.0 = Release|Any CPU 206 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Release|x64.ActiveCfg = Release|Any CPU 207 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Release|x64.Build.0 = Release|Any CPU 208 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Release|x86.ActiveCfg = Release|Any CPU 209 | {682D6FB2-C18B-4522-8B33-567FCC8647FE}.Release|x86.Build.0 = Release|Any CPU 210 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 211 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Debug|Any CPU.Build.0 = Debug|Any CPU 212 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Debug|ARM.ActiveCfg = Debug|Any CPU 213 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Debug|ARM.Build.0 = Debug|Any CPU 214 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Debug|arm64.ActiveCfg = Debug|Any CPU 215 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Debug|arm64.Build.0 = Debug|Any CPU 216 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Debug|x64.ActiveCfg = Debug|Any CPU 217 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Debug|x64.Build.0 = Debug|Any CPU 218 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Debug|x86.ActiveCfg = Debug|Any CPU 219 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Debug|x86.Build.0 = Debug|Any CPU 220 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Release|Any CPU.ActiveCfg = Release|Any CPU 221 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Release|Any CPU.Build.0 = Release|Any CPU 222 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Release|ARM.ActiveCfg = Release|Any CPU 223 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Release|ARM.Build.0 = Release|Any CPU 224 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Release|arm64.ActiveCfg = Release|Any CPU 225 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Release|arm64.Build.0 = Release|Any CPU 226 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Release|x64.ActiveCfg = Release|Any CPU 227 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Release|x64.Build.0 = Release|Any CPU 228 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Release|x86.ActiveCfg = Release|Any CPU 229 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5}.Release|x86.Build.0 = Release|Any CPU 230 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 231 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Debug|Any CPU.Build.0 = Debug|Any CPU 232 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Debug|ARM.ActiveCfg = Debug|Any CPU 233 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Debug|ARM.Build.0 = Debug|Any CPU 234 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Debug|arm64.ActiveCfg = Debug|Any CPU 235 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Debug|arm64.Build.0 = Debug|Any CPU 236 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Debug|x64.ActiveCfg = Debug|Any CPU 237 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Debug|x64.Build.0 = Debug|Any CPU 238 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Debug|x86.ActiveCfg = Debug|Any CPU 239 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Debug|x86.Build.0 = Debug|Any CPU 240 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Release|Any CPU.ActiveCfg = Release|Any CPU 241 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Release|Any CPU.Build.0 = Release|Any CPU 242 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Release|ARM.ActiveCfg = Release|Any CPU 243 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Release|ARM.Build.0 = Release|Any CPU 244 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Release|arm64.ActiveCfg = Release|Any CPU 245 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Release|arm64.Build.0 = Release|Any CPU 246 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Release|x64.ActiveCfg = Release|Any CPU 247 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Release|x64.Build.0 = Release|Any CPU 248 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Release|x86.ActiveCfg = Release|Any CPU 249 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B}.Release|x86.Build.0 = Release|Any CPU 250 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Debug|Any CPU.ActiveCfg = Debug|x64 251 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Debug|Any CPU.Build.0 = Debug|x64 252 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Debug|Any CPU.Deploy.0 = Debug|x64 253 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Debug|ARM.ActiveCfg = Debug|ARM 254 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Debug|ARM.Build.0 = Debug|ARM 255 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Debug|ARM.Deploy.0 = Debug|ARM 256 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Debug|arm64.ActiveCfg = Debug|x64 257 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Debug|arm64.Build.0 = Debug|x64 258 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Debug|arm64.Deploy.0 = Debug|x64 259 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Debug|x64.ActiveCfg = Debug|x64 260 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Debug|x64.Build.0 = Debug|x64 261 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Debug|x64.Deploy.0 = Debug|x64 262 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Debug|x86.ActiveCfg = Debug|x86 263 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Debug|x86.Build.0 = Debug|x86 264 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Debug|x86.Deploy.0 = Debug|x86 265 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Release|Any CPU.ActiveCfg = Release|x64 266 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Release|Any CPU.Build.0 = Release|x64 267 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Release|Any CPU.Deploy.0 = Release|x64 268 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Release|ARM.ActiveCfg = Release|ARM 269 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Release|ARM.Build.0 = Release|ARM 270 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Release|ARM.Deploy.0 = Release|ARM 271 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Release|arm64.ActiveCfg = Release|x64 272 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Release|arm64.Build.0 = Release|x64 273 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Release|arm64.Deploy.0 = Release|x64 274 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Release|x64.ActiveCfg = Release|x64 275 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Release|x64.Build.0 = Release|x64 276 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Release|x64.Deploy.0 = Release|x64 277 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Release|x86.ActiveCfg = Release|x86 278 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Release|x86.Build.0 = Release|x86 279 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4}.Release|x86.Deploy.0 = Release|x86 280 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 281 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Debug|Any CPU.Build.0 = Debug|Any CPU 282 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Debug|ARM.ActiveCfg = Debug|Any CPU 283 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Debug|ARM.Build.0 = Debug|Any CPU 284 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Debug|arm64.ActiveCfg = Debug|Any CPU 285 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Debug|arm64.Build.0 = Debug|Any CPU 286 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Debug|x64.ActiveCfg = Debug|Any CPU 287 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Debug|x64.Build.0 = Debug|Any CPU 288 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Debug|x86.ActiveCfg = Debug|Any CPU 289 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Debug|x86.Build.0 = Debug|Any CPU 290 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Release|Any CPU.ActiveCfg = Release|Any CPU 291 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Release|Any CPU.Build.0 = Release|Any CPU 292 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Release|ARM.ActiveCfg = Release|Any CPU 293 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Release|ARM.Build.0 = Release|Any CPU 294 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Release|arm64.ActiveCfg = Release|Any CPU 295 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Release|arm64.Build.0 = Release|Any CPU 296 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Release|x64.ActiveCfg = Release|Any CPU 297 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Release|x64.Build.0 = Release|Any CPU 298 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Release|x86.ActiveCfg = Release|Any CPU 299 | {BD75A1F4-A81C-4068-902B-AD77F256E50F}.Release|x86.Build.0 = Release|Any CPU 300 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 301 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Debug|Any CPU.Build.0 = Debug|Any CPU 302 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Debug|ARM.ActiveCfg = Debug|Any CPU 303 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Debug|ARM.Build.0 = Debug|Any CPU 304 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Debug|arm64.ActiveCfg = Debug|Any CPU 305 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Debug|arm64.Build.0 = Debug|Any CPU 306 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Debug|x64.ActiveCfg = Debug|Any CPU 307 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Debug|x64.Build.0 = Debug|Any CPU 308 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Debug|x86.ActiveCfg = Debug|Any CPU 309 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Debug|x86.Build.0 = Debug|Any CPU 310 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Release|Any CPU.ActiveCfg = Release|Any CPU 311 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Release|Any CPU.Build.0 = Release|Any CPU 312 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Release|ARM.ActiveCfg = Release|Any CPU 313 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Release|ARM.Build.0 = Release|Any CPU 314 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Release|arm64.ActiveCfg = Release|Any CPU 315 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Release|arm64.Build.0 = Release|Any CPU 316 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Release|x64.ActiveCfg = Release|Any CPU 317 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Release|x64.Build.0 = Release|Any CPU 318 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Release|x86.ActiveCfg = Release|Any CPU 319 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E}.Release|x86.Build.0 = Release|Any CPU 320 | EndGlobalSection 321 | GlobalSection(SolutionProperties) = preSolution 322 | HideSolutionNode = FALSE 323 | EndGlobalSection 324 | GlobalSection(NestedProjects) = preSolution 325 | {65786107-E646-452E-B899-EDD26D09E401} = {A81088C2-A6AF-4CB6-8F36-DF8C0E6D45B3} 326 | {16A17957-6DE3-4874-B0B6-08404C23FBBE} = {A81088C2-A6AF-4CB6-8F36-DF8C0E6D45B3} 327 | {F5EB3A73-1D93-42F7-9757-26B486D74592} = {A81088C2-A6AF-4CB6-8F36-DF8C0E6D45B3} 328 | {8C2D2DDA-890B-4F6F-938F-9CFDF82AAC0F} = {464A41EC-E4D1-4BC3-93BD-A48E3449A4BD} 329 | {AB635967-D2FF-4A55-A319-109099DE8FF4} = {A81088C2-A6AF-4CB6-8F36-DF8C0E6D45B3} 330 | {FCFCA672-7669-4AAC-A76D-6A12E40F2EAB} = {464A41EC-E4D1-4BC3-93BD-A48E3449A4BD} 331 | {682D6FB2-C18B-4522-8B33-567FCC8647FE} = {A81088C2-A6AF-4CB6-8F36-DF8C0E6D45B3} 332 | {BB0DA6F4-4A0F-41B3-A7EC-B4F3FE38F8C5} = {A81088C2-A6AF-4CB6-8F36-DF8C0E6D45B3} 333 | {D457A105-C15B-4461-9AB8-5D40A71CCF7B} = {464A41EC-E4D1-4BC3-93BD-A48E3449A4BD} 334 | {F497B163-E46E-4EA6-9E41-BB0C25CA6272} = {A81088C2-A6AF-4CB6-8F36-DF8C0E6D45B3} 335 | {418D1399-62C8-481B-A954-517B189ECA70} = {464A41EC-E4D1-4BC3-93BD-A48E3449A4BD} 336 | {2B65E186-B9E6-4CEF-9AE6-478C6DE59BC4} = {464A41EC-E4D1-4BC3-93BD-A48E3449A4BD} 337 | {B2C9A032-9670-421E-A413-7C7F504F5B55} = {464A41EC-E4D1-4BC3-93BD-A48E3449A4BD} 338 | {BFAF190F-6B29-4A28-BBFF-4D0AD474DB14} = {464A41EC-E4D1-4BC3-93BD-A48E3449A4BD} 339 | {BD75A1F4-A81C-4068-902B-AD77F256E50F} = {BFAF190F-6B29-4A28-BBFF-4D0AD474DB14} 340 | {B7AD0C41-9E0D-4DB3-A2AE-CDA12BC4250E} = {BFAF190F-6B29-4A28-BBFF-4D0AD474DB14} 341 | EndGlobalSection 342 | GlobalSection(ExtensibilityGlobals) = postSolution 343 | SolutionGuid = {6AF160D8-AC25-4835-84D4-A42A72264F88} 344 | EndGlobalSection 345 | GlobalSection(SharedMSBuildProjectFiles) = preSolution 346 | src\libs\H.XamlExtensions.Shared\H.XamlExtensions.Shared.projitems*{16a17957-6de3-4874-b0b6-08404c23fbbe}*SharedItemsImports = 5 347 | src\apps\H.XamlExtensions.Apps.Shared\H.XamlExtensions.Apps.Shared.projitems*{2b65e186-b9e6-4cef-9ae6-478c6de59bc4}*SharedItemsImports = 4 348 | src\apps\H.XamlExtensions.Apps.WinUI.Shared\H.XamlExtensions.Apps.WinUI.Shared.projitems*{2b65e186-b9e6-4cef-9ae6-478c6de59bc4}*SharedItemsImports = 4 349 | src\apps\H.XamlExtensions.Apps.WinUI.Shared\H.XamlExtensions.Apps.WinUI.Shared.projitems*{418d1399-62c8-481b-a954-517b189eca70}*SharedItemsImports = 13 350 | src\libs\H.XamlExtensions.Shared\H.XamlExtensions.Shared.projitems*{65786107-e646-452e-b899-edd26d09e401}*SharedItemsImports = 5 351 | src\libs\H.XamlExtensions.Shared\H.XamlExtensions.Shared.projitems*{682d6fb2-c18b-4522-8b33-567fcc8647fe}*SharedItemsImports = 5 352 | src\libs\H.XamlExtensions.Shared\H.XamlExtensions.Shared.projitems*{ab635967-d2ff-4a55-a319-109099de8ff4}*SharedItemsImports = 5 353 | src\apps\H.XamlExtensions.Apps.Shared\H.XamlExtensions.Apps.Shared.projitems*{b2c9a032-9670-421e-a413-7c7f504f5b55}*SharedItemsImports = 13 354 | src\apps\H.XamlExtensions.Apps.Shared\H.XamlExtensions.Apps.Shared.projitems*{b7ad0c41-9e0d-4db3-a2ae-cda12bc4250e}*SharedItemsImports = 5 355 | src\apps\H.XamlExtensions.Apps.WinUI.Shared\H.XamlExtensions.Apps.WinUI.Shared.projitems*{b7ad0c41-9e0d-4db3-a2ae-cda12bc4250e}*SharedItemsImports = 5 356 | src\libs\H.XamlExtensions.Shared\H.XamlExtensions.Shared.projitems*{bb0da6f4-4a0f-41b3-a7ec-b4f3fe38f8c5}*SharedItemsImports = 5 357 | src\apps\H.XamlExtensions.Apps.Shared\H.XamlExtensions.Apps.Shared.projitems*{bd75a1f4-a81c-4068-902b-ad77f256e50f}*SharedItemsImports = 5 358 | src\apps\H.XamlExtensions.Apps.WinUI.Shared\H.XamlExtensions.Apps.WinUI.Shared.projitems*{bd75a1f4-a81c-4068-902b-ad77f256e50f}*SharedItemsImports = 5 359 | src\libs\H.XamlExtensions.Shared\H.XamlExtensions.Shared.projitems*{f497b163-e46e-4ea6-9e41-bb0c25ca6272}*SharedItemsImports = 13 360 | src\libs\H.XamlExtensions.Shared\H.XamlExtensions.Shared.projitems*{f5eb3a73-1d93-42f7-9757-26b486d74592}*SharedItemsImports = 5 361 | src\apps\H.XamlExtensions.Apps.Shared\H.XamlExtensions.Apps.Shared.projitems*{fcfca672-7669-4aac-a76d-6a12e40f2eab}*SharedItemsImports = 5 362 | src\apps\H.XamlExtensions.Apps.WinUI.Shared\H.XamlExtensions.Apps.WinUI.Shared.projitems*{fcfca672-7669-4aac-a76d-6a12e40f2eab}*SharedItemsImports = 5 363 | EndGlobalSection 364 | EndGlobal 365 | -------------------------------------------------------------------------------- /src/apps/Uno/H.XamlExtensions.Apps.Uno.WebAssembly/WasmCSS/Fonts.css: -------------------------------------------------------------------------------- 1 | /** 2 | When adding fonts here, make sure to add them using a base64 data uri, otherwise 3 | fonts loading are delayed, and text may get displayed incorrectly. 4 | */ 5 | 6 | @font-face { 7 | font-family: "Symbols"; 8 | /* uno-fluentui-assets.woff2 */ 9 | src: url(data:application/x-font-woff;charset=utf-8;base64,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)format('woff'); 10 | } 11 | 12 | 13 | /* Workaround for uno issue https://github.com/unoplatform/uno/issues/693 */ 14 | body::before { 15 | font-family: 'Symbols'; 16 | background: transparent; 17 | content: ""; 18 | opacity: 0; 19 | pointer-events: none; 20 | position: absolute; 21 | } 22 | 23 | /* https://github.com/unoplatform/uno/issues/4304 */ 24 | @font-face { 25 | font-family: 'Segoe UI'; 26 | src: local('system-ui'), local('Segoe UI'), local('-apple-system'), local('BlinkMacSystemFont'), local('Inter'), local('Cantarell'), local('Ubuntu'), local('Roboto'), local('Open Sans'), local('Noto Sans'), local('Helvetica Neue'), local('sans-serif'); 27 | } --------------------------------------------------------------------------------