diff --git a/LICENSE b/LICENSE index 4c1ea46..c012463 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021 Vijay Anand E G +Copyright (c) 2021-2024 Vijay Anand E G Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index a1182d7..9a7eca1 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,9 @@ Made available in the `src\NET_9\` directory: |`EmbeddediOS`|.NET MAUI Page embedded in a .NET 9 for iOS App
Refer to this [.NET MAUI - Native Embedding](https://egvijayanand.in/2024/02/29/dotnet-maui-native-embedding/) article for working with this sample| |`EmbeddedWindows`|.NET MAUI Page embedded in a Native WinUI 3 App
Refer to this [.NET MAUI - Native Embedding](https://egvijayanand.in/2024/02/29/dotnet-maui-native-embedding/) article for working with this sample| |`MapsApp`|Using .NET MAUI [CommunityToolkit.Maui.Maps](https://www.nuget.org/packages/CommunityToolkit.Maui.Maps) embedded in a Native WinUI 3 App
Refer to this [.NET MAUI Community Toolkit Maps in WinUI 3 App](https://egvijayanand.in/2024/03/07/dotnet-maui-community-toolkit-maps-in-winui-3-app/) article for working with this sample| -|`HybridWebViewApp`|A sample .NET MAUI App showcasing the features of the new [HybridWebView](https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-9?view=net-maui-9.0#hybridwebview) control.
Refer to this [Exploring .NET MAUI 9: HybridWebView Features](https://egvijayanand.in/2024/10/04/exploring-dotnet-maui-9-hybridwebview-features/) article for working with this sample| +|`HybridWebViewApp`|A sample app showcasing the features of the new [HybridWebView](https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-9?view=net-maui-9.0#hybridwebview) control.
Refer to this [Exploring .NET MAUI 9: HybridWebView](https://egvijayanand.in/2024/10/04/exploring-dotnet-maui-9-hybridwebview-features/) article for working with this sample| |`WinUIBlazor`|.NET MAUI `BlazorWebView` embedded in a Native WinUI 3 App, making it as a Blazor Hybrid app
Refer to this [.NET MAUI - Blazor Hybrid - WinUI 3](https://egvijayanand.in/2023/03/29/dotnet-maui-blazor-hybrid-winui-3/) article for working with this sample| +|`TitleBarApp`|A sample app showcasing the features of the new [TitleBar](https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-9?view=net-maui-9.0#titlebar-for-windows) control.
Refer to this [What's New in .NET MAUI 9: Window TitleBar](https://egvijayanand.in/2024/12/04/what-is-new-in-dotnet-maui-9-window-titlebar/) article for working with this sample| ### .NET MAUI 8 Samples diff --git a/src/NET_9/TitleBarApp/App.xaml b/src/NET_9/TitleBarApp/App.xaml new file mode 100644 index 0000000..1538195 --- /dev/null +++ b/src/NET_9/TitleBarApp/App.xaml @@ -0,0 +1,70 @@ + + + + + + + + + + 10 + OS600 + + + + + + + + + + + + + + + diff --git a/src/NET_9/TitleBarApp/App.xaml.cs b/src/NET_9/TitleBarApp/App.xaml.cs new file mode 100644 index 0000000..287e354 --- /dev/null +++ b/src/NET_9/TitleBarApp/App.xaml.cs @@ -0,0 +1,14 @@ +namespace TitleBarApp; + +public partial class App : Application +{ + public App() + { + InitializeComponent(); + + UserAppTheme = PlatformAppTheme; + } + + protected override Window CreateWindow(IActivationState? activationState) + => new MainWindow(); +} diff --git a/src/NET_9/TitleBarApp/AppShell.xaml b/src/NET_9/TitleBarApp/AppShell.xaml new file mode 100644 index 0000000..8a2b525 --- /dev/null +++ b/src/NET_9/TitleBarApp/AppShell.xaml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/NET_9/TitleBarApp/AppShell.xaml.cs b/src/NET_9/TitleBarApp/AppShell.xaml.cs new file mode 100644 index 0000000..27dcbbf --- /dev/null +++ b/src/NET_9/TitleBarApp/AppShell.xaml.cs @@ -0,0 +1,10 @@ +namespace TitleBarApp +{ + public partial class AppShell : Shell + { + public AppShell() + { + InitializeComponent(); + } + } +} diff --git a/src/NET_9/TitleBarApp/Directory.Packages.props b/src/NET_9/TitleBarApp/Directory.Packages.props new file mode 100644 index 0000000..50cc564 --- /dev/null +++ b/src/NET_9/TitleBarApp/Directory.Packages.props @@ -0,0 +1,6 @@ + + + false + 9.* + + diff --git a/src/NET_9/TitleBarApp/Imports.cs b/src/NET_9/TitleBarApp/Imports.cs new file mode 100644 index 0000000..73ea79b --- /dev/null +++ b/src/NET_9/TitleBarApp/Imports.cs @@ -0,0 +1,17 @@ +// .NET MAUI Markup +global using CommunityToolkit.Maui.Markup; + +// MVVM Toolkit +global using CommunityToolkit.Mvvm.ComponentModel; +global using CommunityToolkit.Mvvm.Input; + +global using TitleBarApp; +global using TitleBarApp.Views; + +// Shared Toolkit +global using VijayAnand.Toolkit.Markup; + +// Static +global using static CommunityToolkit.Maui.Markup.GridRowsColumns; +global using static Microsoft.Maui.Graphics.Colors; +global using static VijayAnand.Toolkit.Markup.ResourceHelper; diff --git a/src/NET_9/TitleBarApp/MainWindow.xaml b/src/NET_9/TitleBarApp/MainWindow.xaml new file mode 100644 index 0000000..ca262f6 --- /dev/null +++ b/src/NET_9/TitleBarApp/MainWindow.xaml @@ -0,0 +1,9 @@ + + + + diff --git a/src/NET_9/TitleBarApp/MainWindow.xaml.cs b/src/NET_9/TitleBarApp/MainWindow.xaml.cs new file mode 100644 index 0000000..99a437c --- /dev/null +++ b/src/NET_9/TitleBarApp/MainWindow.xaml.cs @@ -0,0 +1,15 @@ +namespace TitleBarApp +{ + public partial class MainWindow : Window + { + public MainWindow() + { + InitializeComponent(); + } + + public MainWindow(Page page) : base(page) + { + InitializeComponent(); + } + } +} diff --git a/src/NET_9/TitleBarApp/MauiProgram.cs b/src/NET_9/TitleBarApp/MauiProgram.cs new file mode 100644 index 0000000..0f26e92 --- /dev/null +++ b/src/NET_9/TitleBarApp/MauiProgram.cs @@ -0,0 +1,26 @@ +using Microsoft.Extensions.Logging; + +namespace TitleBarApp +{ + public static partial class MauiProgram + { + public static MauiApp CreateMauiApp() + { + var builder = MauiApp.CreateBuilder(); + builder.UseMauiApp() + .UseMauiCommunityToolkitMarkup() + .ConfigureFonts(fonts => + { + fonts.AddFont("OpenSans-Regular.ttf", "OS400"); + fonts.AddFont("OpenSans-SemiBold.ttf", "OS600"); + fonts.AddFont("fa-solid-900.ttf", "FAS"); + }); + +#if DEBUG + builder.Logging.AddDebug(); +#endif + + return builder.Build(); + } + } +} diff --git a/src/NET_9/TitleBarApp/MyWindow.xaml b/src/NET_9/TitleBarApp/MyWindow.xaml new file mode 100644 index 0000000..c617340 --- /dev/null +++ b/src/NET_9/TitleBarApp/MyWindow.xaml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/NET_9/TitleBarApp/MyWindow.xaml.cs b/src/NET_9/TitleBarApp/MyWindow.xaml.cs new file mode 100644 index 0000000..2ce425e --- /dev/null +++ b/src/NET_9/TitleBarApp/MyWindow.xaml.cs @@ -0,0 +1,15 @@ +namespace TitleBarApp +{ + public partial class MyWindow : Window + { + public MyWindow() + { + InitializeComponent(); + } + + public MyWindow(Page page) : base(page) + { + InitializeComponent(); + } + } +} diff --git a/src/NET_9/TitleBarApp/Platforms/Android/AndroidManifest.xml b/src/NET_9/TitleBarApp/Platforms/Android/AndroidManifest.xml new file mode 100644 index 0000000..f72486a --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/Android/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/NET_9/TitleBarApp/Platforms/Android/MainActivity.cs b/src/NET_9/TitleBarApp/Platforms/Android/MainActivity.cs new file mode 100644 index 0000000..a92d245 --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/Android/MainActivity.cs @@ -0,0 +1,12 @@ +using Android.App; +using Android.Content.PM; +using Android.OS; + +namespace TitleBarApp +{ + [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize)] + public class MainActivity : MauiAppCompatActivity + { + + } +} diff --git a/src/NET_9/TitleBarApp/Platforms/Android/MainApplication.cs b/src/NET_9/TitleBarApp/Platforms/Android/MainApplication.cs new file mode 100644 index 0000000..28d414f --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/Android/MainApplication.cs @@ -0,0 +1,16 @@ +using Android.App; +using Android.Runtime; + +namespace TitleBarApp +{ + [Application] + public class MainApplication : MauiApplication + { + public MainApplication(IntPtr handle, JniHandleOwnership ownership) + : base(handle, ownership) + { + } + + protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); + } +} diff --git a/src/NET_9/TitleBarApp/Platforms/Android/Resources/values/colors.xml b/src/NET_9/TitleBarApp/Platforms/Android/Resources/values/colors.xml new file mode 100644 index 0000000..12a661d --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/Android/Resources/values/colors.xml @@ -0,0 +1,6 @@ + + + #512BD4 + #2B0B98 + #2B0B98 + \ No newline at end of file diff --git a/src/NET_9/TitleBarApp/Platforms/MacCatalyst/AppDelegate.cs b/src/NET_9/TitleBarApp/Platforms/MacCatalyst/AppDelegate.cs new file mode 100644 index 0000000..537c005 --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/MacCatalyst/AppDelegate.cs @@ -0,0 +1,10 @@ +using Foundation; + +namespace TitleBarApp +{ + [Register(nameof(AppDelegate))] + public class AppDelegate : MauiUIApplicationDelegate + { + protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); + } +} diff --git a/src/NET_9/TitleBarApp/Platforms/MacCatalyst/Info.plist b/src/NET_9/TitleBarApp/Platforms/MacCatalyst/Info.plist new file mode 100644 index 0000000..403ce9c --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/MacCatalyst/Info.plist @@ -0,0 +1,30 @@ + + + + + UIDeviceFamily + + 1 + 2 + + UIRequiredDeviceCapabilities + + arm64 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + XSAppIconAssets + Assets.xcassets/appicon.appiconset + + diff --git a/src/NET_9/TitleBarApp/Platforms/MacCatalyst/PrivacyInfo.xcprivacy b/src/NET_9/TitleBarApp/Platforms/MacCatalyst/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..dcfcbac --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/MacCatalyst/PrivacyInfo.xcprivacy @@ -0,0 +1,43 @@ + + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryDiskSpace + NSPrivacyAccessedAPITypeReasons + + E174.1 + + + + + + diff --git a/src/NET_9/TitleBarApp/Platforms/MacCatalyst/Program.cs b/src/NET_9/TitleBarApp/Platforms/MacCatalyst/Program.cs new file mode 100644 index 0000000..fdcdc5b --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/MacCatalyst/Program.cs @@ -0,0 +1,16 @@ +using ObjCRuntime; +using UIKit; + +namespace TitleBarApp +{ + public class Program + { + // This is the main entry point of the application. + static void Main(string[] args) + { + // if you want to use a different Application Delegate class from "AppDelegate" + // you can specify it here. + UIApplication.Main(args, null, typeof(AppDelegate)); + } + } +} diff --git a/src/NET_9/TitleBarApp/Platforms/Tizen/Main.cs b/src/NET_9/TitleBarApp/Platforms/Tizen/Main.cs new file mode 100644 index 0000000..9e5971f --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/Tizen/Main.cs @@ -0,0 +1,17 @@ +using System; +using Microsoft.Maui; +using Microsoft.Maui.Hosting; + +namespace TitleBarApp +{ + class Program : MauiApplication + { + protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); + + static void Main(string[] args) + { + var app = new Program(); + app.Run(args); + } + } +} diff --git a/src/NET_9/TitleBarApp/Platforms/Tizen/tizen-manifest.xml b/src/NET_9/TitleBarApp/Platforms/Tizen/tizen-manifest.xml new file mode 100644 index 0000000..503b0be --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/Tizen/tizen-manifest.xml @@ -0,0 +1,15 @@ + + + + + + appicon.xhigh.png + + + + + http://tizen.org/privilege/internet + + + + diff --git a/src/NET_9/TitleBarApp/Platforms/Windows/App.xaml b/src/NET_9/TitleBarApp/Platforms/Windows/App.xaml new file mode 100644 index 0000000..3a46b40 --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/Windows/App.xaml @@ -0,0 +1,8 @@ + + + diff --git a/src/NET_9/TitleBarApp/Platforms/Windows/App.xaml.cs b/src/NET_9/TitleBarApp/Platforms/Windows/App.xaml.cs new file mode 100644 index 0000000..1ff22ea --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/Windows/App.xaml.cs @@ -0,0 +1,24 @@ +using Microsoft.UI.Xaml; + +// To learn more about WinUI, the WinUI project structure, +// and more about our project templates, see: http://aka.ms/winui-project-info. + +namespace TitleBarApp.WinUI +{ + /// + /// Provides application-specific behavior to supplement the default Application class. + /// + public partial class App : MauiWinUIApplication + { + /// + /// Initializes the singleton application object. This is the first line of authored code + /// executed, and as such is the logical equivalent of main() or WinMain(). + /// + public App() + { + this.InitializeComponent(); + } + + protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); + } +} diff --git a/src/NET_9/TitleBarApp/Platforms/Windows/Package.appxmanifest b/src/NET_9/TitleBarApp/Platforms/Windows/Package.appxmanifest new file mode 100644 index 0000000..9efd225 --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/Windows/Package.appxmanifest @@ -0,0 +1,47 @@ + + + + + + + + + + $placeholder$ + User Name + $placeholder$.png + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/NET_9/TitleBarApp/Platforms/Windows/app.manifest b/src/NET_9/TitleBarApp/Platforms/Windows/app.manifest new file mode 100644 index 0000000..11b5956 --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/Windows/app.manifest @@ -0,0 +1,15 @@ + + + + + + + + true/PM + PerMonitorV2, PerMonitor + + + diff --git a/src/NET_9/TitleBarApp/Platforms/iOS/AppDelegate.cs b/src/NET_9/TitleBarApp/Platforms/iOS/AppDelegate.cs new file mode 100644 index 0000000..537c005 --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/iOS/AppDelegate.cs @@ -0,0 +1,10 @@ +using Foundation; + +namespace TitleBarApp +{ + [Register(nameof(AppDelegate))] + public class AppDelegate : MauiUIApplicationDelegate + { + protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); + } +} diff --git a/src/NET_9/TitleBarApp/Platforms/iOS/Info.plist b/src/NET_9/TitleBarApp/Platforms/iOS/Info.plist new file mode 100644 index 0000000..ecb7f71 --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/iOS/Info.plist @@ -0,0 +1,32 @@ + + + + + LSRequiresIPhoneOS + + UIDeviceFamily + + 1 + 2 + + UIRequiredDeviceCapabilities + + arm64 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + XSAppIconAssets + Assets.xcassets/appicon.appiconset + + diff --git a/src/NET_9/TitleBarApp/Platforms/iOS/PrivacyInfo.xcprivacy b/src/NET_9/TitleBarApp/Platforms/iOS/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..dcfcbac --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/iOS/PrivacyInfo.xcprivacy @@ -0,0 +1,43 @@ + + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryDiskSpace + NSPrivacyAccessedAPITypeReasons + + E174.1 + + + + + + diff --git a/src/NET_9/TitleBarApp/Platforms/iOS/Program.cs b/src/NET_9/TitleBarApp/Platforms/iOS/Program.cs new file mode 100644 index 0000000..fdcdc5b --- /dev/null +++ b/src/NET_9/TitleBarApp/Platforms/iOS/Program.cs @@ -0,0 +1,16 @@ +using ObjCRuntime; +using UIKit; + +namespace TitleBarApp +{ + public class Program + { + // This is the main entry point of the application. + static void Main(string[] args) + { + // if you want to use a different Application Delegate class from "AppDelegate" + // you can specify it here. + UIApplication.Main(args, null, typeof(AppDelegate)); + } + } +} diff --git a/src/NET_9/TitleBarApp/Properties/launchSettings.json b/src/NET_9/TitleBarApp/Properties/launchSettings.json new file mode 100644 index 0000000..54e8460 --- /dev/null +++ b/src/NET_9/TitleBarApp/Properties/launchSettings.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "Windows Machine": { + "commandName": "Project", + "nativeDebugging": false + } + } +} diff --git a/src/NET_9/TitleBarApp/Resources/Colors.xaml b/src/NET_9/TitleBarApp/Resources/Colors.xaml new file mode 100644 index 0000000..c996d51 --- /dev/null +++ b/src/NET_9/TitleBarApp/Resources/Colors.xaml @@ -0,0 +1,67 @@ + + + + + #512BD4 + #DFD8F7 + #2B0B98 + White + Black + #E1E1E1 + #C8C8C8 + #ACACAC + #919191 + #6E6E6E + #404040 + #212121 + #141414 + + #DFD8F7 + #2B0B98 + #E5E5E1 + #969696 + #505050 + + + + + + + + + + + + + + + + + + + + + + + #121212 + White + White + Black + + #F7B548 + #FFD590 + #FFE5B9 + #28C2D1 + #7BDDEF + #C3F2F4 + #3E8EED + #72ACF1 + #A7CBF6 + + diff --git a/src/NET_9/TitleBarApp/Resources/Fonts/OpenSans-Regular.ttf b/src/NET_9/TitleBarApp/Resources/Fonts/OpenSans-Regular.ttf new file mode 100644 index 0000000..c9237de Binary files /dev/null and b/src/NET_9/TitleBarApp/Resources/Fonts/OpenSans-Regular.ttf differ diff --git a/src/NET_9/TitleBarApp/Resources/Fonts/OpenSans-SemiBold.ttf b/src/NET_9/TitleBarApp/Resources/Fonts/OpenSans-SemiBold.ttf new file mode 100644 index 0000000..0da9f99 Binary files /dev/null and b/src/NET_9/TitleBarApp/Resources/Fonts/OpenSans-SemiBold.ttf differ diff --git a/src/NET_9/TitleBarApp/Resources/Fonts/fa-solid-900.ttf b/src/NET_9/TitleBarApp/Resources/Fonts/fa-solid-900.ttf new file mode 100644 index 0000000..e7e2ecf Binary files /dev/null and b/src/NET_9/TitleBarApp/Resources/Fonts/fa-solid-900.ttf differ diff --git a/src/NET_9/TitleBarApp/Resources/Images/dotnet_bot.svg b/src/NET_9/TitleBarApp/Resources/Images/dotnet_bot.svg new file mode 100644 index 0000000..abfaff2 --- /dev/null +++ b/src/NET_9/TitleBarApp/Resources/Images/dotnet_bot.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/NET_9/TitleBarApp/Resources/Raw/AboutAssets.txt b/src/NET_9/TitleBarApp/Resources/Raw/AboutAssets.txt new file mode 100644 index 0000000..3f7a940 --- /dev/null +++ b/src/NET_9/TitleBarApp/Resources/Raw/AboutAssets.txt @@ -0,0 +1,14 @@ +Any raw assets you want to be deployed with your application can be placed in +this directory (and child directories) and given a Build Action of "MauiAsset": + + + +These files will be deployed with you package and will be accessible using Essentials: + + async Task LoadMauiAsset() + { + using var stream = await FileSystem.OpenAppPackageFileAsync("AboutAssets.txt"); + using var reader = new StreamReader(stream); + + var contents = reader.ReadToEnd(); + } diff --git a/src/NET_9/TitleBarApp/Resources/Styles.xaml b/src/NET_9/TitleBarApp/Resources/Styles.xaml new file mode 100644 index 0000000..9638443 --- /dev/null +++ b/src/NET_9/TitleBarApp/Resources/Styles.xaml @@ -0,0 +1,387 @@ + + + + + + OS400 + + 14 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/NET_9/TitleBarApp/Resources/appicon.svg b/src/NET_9/TitleBarApp/Resources/appicon.svg new file mode 100644 index 0000000..9d63b65 --- /dev/null +++ b/src/NET_9/TitleBarApp/Resources/appicon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/NET_9/TitleBarApp/Resources/appiconfg.svg b/src/NET_9/TitleBarApp/Resources/appiconfg.svg new file mode 100644 index 0000000..21dfb25 --- /dev/null +++ b/src/NET_9/TitleBarApp/Resources/appiconfg.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/NET_9/TitleBarApp/TitleBarApp.code-workspace b/src/NET_9/TitleBarApp/TitleBarApp.code-workspace new file mode 100644 index 0000000..9b3ddc9 --- /dev/null +++ b/src/NET_9/TitleBarApp/TitleBarApp.code-workspace @@ -0,0 +1,15 @@ +{ + "folders": [ + { + "path": "." + } + ], + "settings": {}, + "extensions": { + "recommendations": [ + "ms-dotnettools.csharp", + "ms-dotnettools.dotnet-maui", + "VisualStudioExptTeam.vscodeintellicode" + ] + } +} diff --git a/src/NET_9/TitleBarApp/TitleBarApp.csproj b/src/NET_9/TitleBarApp/TitleBarApp.csproj new file mode 100644 index 0000000..f5ea9bd --- /dev/null +++ b/src/NET_9/TitleBarApp/TitleBarApp.csproj @@ -0,0 +1,78 @@ + + + + net9.0-android + $(TargetFrameworks);net9.0-ios;net9.0-maccatalyst + $(TargetFrameworks);net9.0-ios;net9.0-maccatalyst;net9.0-windows10.0.19041.0 + + $(TargetFrameworks);net9.0 + Exe + + + true + true + + + enable + latest + enable + TitleBarApp + None + + + TitleBarApp + + + com.companyname.titlebarapp + + + 1.0 + 1 + + + 15.0 + 15.0 + 21.0 + 6.5 + 10.0.17763.0 + + + 10.0.17763.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/NET_9/TitleBarApp/TitleBarApp.sln b/src/NET_9/TitleBarApp/TitleBarApp.sln new file mode 100644 index 0000000..70022e9 --- /dev/null +++ b/src/NET_9/TitleBarApp/TitleBarApp.sln @@ -0,0 +1,27 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TitleBarApp", "TitleBarApp.csproj", "{89AFF070-6421-4274-9D70-542066138183}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8EC462FD-D22E-90A8-E5CE-7E832BA40C5D}" + ProjectSection(SolutionItems) = preProject + Directory.Packages.props = Directory.Packages.props + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {89AFF070-6421-4274-9D70-542066138183}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {89AFF070-6421-4274-9D70-542066138183}.Debug|Any CPU.Build.0 = Debug|Any CPU + {89AFF070-6421-4274-9D70-542066138183}.Release|Any CPU.ActiveCfg = Release|Any CPU + {89AFF070-6421-4274-9D70-542066138183}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/NET_9/TitleBarApp/TitleBarApp.slnx b/src/NET_9/TitleBarApp/TitleBarApp.slnx new file mode 100644 index 0000000..2834f44 --- /dev/null +++ b/src/NET_9/TitleBarApp/TitleBarApp.slnx @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/NET_9/TitleBarApp/Views/CSharpPage.xaml b/src/NET_9/TitleBarApp/Views/CSharpPage.xaml new file mode 100644 index 0000000..13b895c --- /dev/null +++ b/src/NET_9/TitleBarApp/Views/CSharpPage.xaml @@ -0,0 +1,14 @@ + + + + + diff --git a/src/NET_9/TitleBarApp/Views/CSharpPage.xaml.cs b/src/NET_9/TitleBarApp/Views/CSharpPage.xaml.cs new file mode 100644 index 0000000..c22dfe2 --- /dev/null +++ b/src/NET_9/TitleBarApp/Views/CSharpPage.xaml.cs @@ -0,0 +1,57 @@ +namespace TitleBarApp.Views +{ + public partial class CSharpPage : ContentPage + { + public CSharpPage() + { + InitializeComponent(); + } + + protected override void OnAppearing() + { + base.OnAppearing(); + Window.TitleBar = new TitleBar() + { + ForegroundColor = AppColor("White"), + LeadingContent = new Grid() + { + ColumnDefinitions = Columns.Define(Auto, Auto, Auto), + ColumnSpacing = 15d, + Children = + { + new Image() + { + Source = "dotnet_bot.png", + }.Size(16), + new Label().Column(1) + .Text("MyApp") + .Style(AppStyle("AppTitle")!), + new Label().Column(2) + .Text("C#") + .Style(AppStyle("Title")!), + }, + }.CenterVertical() + .Margins(20), + Content = new SearchBar() + { + MaximumWidthRequest = 300, + Placeholder = "Search", + }.FillHorizontal() + .CenterVertical() + .BackgroundColor(AppColor("White")), + TrailingContent = new ImageButton() + { + Background = new SolidColorBrush(Transparent), + BorderWidth = 0d, + Source = new FontImageSource() + { + FontFamily = "FAS", + Glyph = "\xF013", + Size = 18, + }, + }.Size(36), + }.Height(48) + .BackgroundColor(AppColor("Primary")); + } + } +} diff --git a/src/NET_9/TitleBarApp/Views/MainPage.xaml b/src/NET_9/TitleBarApp/Views/MainPage.xaml new file mode 100644 index 0000000..9445d72 --- /dev/null +++ b/src/NET_9/TitleBarApp/Views/MainPage.xaml @@ -0,0 +1,69 @@ + + + + + + + +