diff --git a/SampleApps/WebView2_WinUI3_Sample/.gitignore b/SampleApps/WebView2_WinUI3_Sample/.gitignore
new file mode 100644
index 00000000..bd780cff
--- /dev/null
+++ b/SampleApps/WebView2_WinUI3_Sample/.gitignore
@@ -0,0 +1,15 @@
+bin/
+.vs/
+obj/
+FixedRuntime/
+# Created by running event monitor
+enc_temp_folder/
+packages/
+
+# Override root .gitignore to ensure we pick up changes for the sample app
+!*.sln
+!*.csproj
+
+# Make sure script debug config is checked in for vendor testing
+!.vscode
+
diff --git a/SampleApps/WebView2_WinUI3_Sample/MSOWNERS b/SampleApps/WebView2_WinUI3_Sample/MSOWNERS
new file mode 100644
index 00000000..7379995e
--- /dev/null
+++ b/SampleApps/WebView2_WinUI3_Sample/MSOWNERS
@@ -0,0 +1,4 @@
+:enforce-cr
+pischout@microsoft.com
+osoba@microsoft.com
+mwinstanley@microsoft.com
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/LockScreenLogo.scale-200.png b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/LockScreenLogo.scale-200.png
new file mode 100644
index 00000000..7440f0d4
Binary files /dev/null and b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/LockScreenLogo.scale-200.png differ
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/SplashScreen.scale-200.png b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/SplashScreen.scale-200.png
new file mode 100644
index 00000000..32f486a8
Binary files /dev/null and b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/SplashScreen.scale-200.png differ
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/Square150x150Logo.scale-200.png b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/Square150x150Logo.scale-200.png
new file mode 100644
index 00000000..53ee3777
Binary files /dev/null and b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/Square150x150Logo.scale-200.png differ
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/Square44x44Logo.scale-200.png b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/Square44x44Logo.scale-200.png
new file mode 100644
index 00000000..f713bba6
Binary files /dev/null and b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/Square44x44Logo.scale-200.png differ
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/Square44x44Logo.targetsize-24_altform-unplated.png b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644
index 00000000..dc9f5bea
Binary files /dev/null and b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/Square44x44Logo.targetsize-24_altform-unplated.png differ
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/StoreLogo.png b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/StoreLogo.png
new file mode 100644
index 00000000..a4586f26
Binary files /dev/null and b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/StoreLogo.png differ
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/Wide310x150Logo.scale-200.png b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/Wide310x150Logo.scale-200.png
new file mode 100644
index 00000000..8b4a5d0d
Binary files /dev/null and b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Images/Wide310x150Logo.scale-200.png differ
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Package.appxmanifest b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Package.appxmanifest
new file mode 100644
index 00000000..4440957f
--- /dev/null
+++ b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/Package.appxmanifest
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+ WebView2_WinUI3_Sample (Package)
+ Microsoft
+ Images\StoreLogo.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/WebView2_WinUI3_Sample (Package).assets.cache b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/WebView2_WinUI3_Sample (Package).assets.cache
new file mode 100644
index 00000000..ee1e39cd
Binary files /dev/null and b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/WebView2_WinUI3_Sample (Package).assets.cache differ
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/WebView2_WinUI3_Sample (Package).wapproj b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/WebView2_WinUI3_Sample (Package).wapproj
new file mode 100644
index 00000000..02d3c31c
--- /dev/null
+++ b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample (Package)/WebView2_WinUI3_Sample (Package).wapproj
@@ -0,0 +1,76 @@
+
+
+
+ 15.0
+
+
+
+ Debug
+ x86
+
+
+ Release
+ x86
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ Debug
+ arm64
+
+
+ Release
+ arm64
+
+
+
+ $(MSBuildExtensionsPath)\Microsoft\DesktopBridge\
+ WebView2_WinUI3_Sample\
+
+
+
+ c55695ec-29c1-4544-857c-931372c2e7e6
+ 10.0.19041.0
+ 10.0.17763.0
+ net5.0-windows$(TargetPlatformVersion);$(AssetTargetFallback)
+ en-US
+ false
+ ..\WebView2_WinUI3_Sample\WebView2_WinUI3_Sample.csproj
+
+
+
+ Designer
+
+
+
+
+ PreserveNewest
+
+
+
+
+
+
+
+
+
+
+
+ True
+ Properties\PublishProfiles\win10-$(Platform).pubxml
+
+
+
+
+
+ build
+
+
+
+
\ No newline at end of file
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample.sln b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample.sln
new file mode 100644
index 00000000..67c2364c
--- /dev/null
+++ b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample.sln
@@ -0,0 +1,62 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.32014.148
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "WebView2_WinUI3_Sample (Package)", "WebView2_WinUI3_Sample (Package)\WebView2_WinUI3_Sample (Package).wapproj", "{C55695EC-29C1-4544-857C-931372C2E7E6}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebView2_WinUI3_Sample", "WebView2_WinUI3_Sample\WebView2_WinUI3_Sample.csproj", "{352E887C-BB2F-4BA0-89A9-B4653E9961F5}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{95488D83-4C9B-4BDA-8319-B5A5E836389A}"
+ ProjectSection(SolutionItems) = preProject
+ readme.md = readme.md
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|arm64 = Debug|arm64
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|arm64 = Release|arm64
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Debug|arm64.ActiveCfg = Debug|arm64
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Debug|arm64.Build.0 = Debug|arm64
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Debug|arm64.Deploy.0 = Debug|arm64
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Debug|x64.ActiveCfg = Debug|x64
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Debug|x64.Build.0 = Debug|x64
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Debug|x64.Deploy.0 = Debug|x64
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Debug|x86.ActiveCfg = Debug|x86
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Debug|x86.Build.0 = Debug|x86
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Debug|x86.Deploy.0 = Debug|x86
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Release|arm64.ActiveCfg = Release|arm64
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Release|arm64.Build.0 = Release|arm64
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Release|arm64.Deploy.0 = Release|arm64
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Release|x64.ActiveCfg = Release|x64
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Release|x64.Build.0 = Release|x64
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Release|x64.Deploy.0 = Release|x64
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Release|x86.ActiveCfg = Release|x86
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Release|x86.Build.0 = Release|x86
+ {C55695EC-29C1-4544-857C-931372C2E7E6}.Release|x86.Deploy.0 = Release|x86
+ {352E887C-BB2F-4BA0-89A9-B4653E9961F5}.Debug|arm64.ActiveCfg = Debug|arm64
+ {352E887C-BB2F-4BA0-89A9-B4653E9961F5}.Debug|arm64.Build.0 = Debug|arm64
+ {352E887C-BB2F-4BA0-89A9-B4653E9961F5}.Debug|x64.ActiveCfg = Debug|x64
+ {352E887C-BB2F-4BA0-89A9-B4653E9961F5}.Debug|x64.Build.0 = Debug|x64
+ {352E887C-BB2F-4BA0-89A9-B4653E9961F5}.Debug|x86.ActiveCfg = Debug|x86
+ {352E887C-BB2F-4BA0-89A9-B4653E9961F5}.Debug|x86.Build.0 = Debug|x86
+ {352E887C-BB2F-4BA0-89A9-B4653E9961F5}.Release|arm64.ActiveCfg = Release|arm64
+ {352E887C-BB2F-4BA0-89A9-B4653E9961F5}.Release|arm64.Build.0 = Release|arm64
+ {352E887C-BB2F-4BA0-89A9-B4653E9961F5}.Release|x64.ActiveCfg = Release|x64
+ {352E887C-BB2F-4BA0-89A9-B4653E9961F5}.Release|x64.Build.0 = Release|x64
+ {352E887C-BB2F-4BA0-89A9-B4653E9961F5}.Release|x86.ActiveCfg = Release|x86
+ {352E887C-BB2F-4BA0-89A9-B4653E9961F5}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {29310077-4FDB-47DA-A8CC-6E0C9D6E619F}
+ EndGlobalSection
+EndGlobal
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/App.xaml b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/App.xaml
new file mode 100644
index 00000000..2e6b7724
--- /dev/null
+++ b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/App.xaml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/App.xaml.cs b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/App.xaml.cs
new file mode 100644
index 00000000..e9b4de24
--- /dev/null
+++ b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/App.xaml.cs
@@ -0,0 +1,49 @@
+using Microsoft.UI.Xaml;
+using System;
+using System.Diagnostics;
+using System.IO;
+using Windows.Storage;
+
+// To learn more about WinUI, the WinUI project structure,
+// and more about our project templates, see: http://aka.ms/winui-project-info.
+
+namespace WebView2_WinUI3_Sample
+{
+ ///
+ /// Provides application-specific behavior to supplement the default Application class.
+ ///
+ public partial class App : Application
+ {
+ ///
+ /// 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();
+
+ // If your shipping a fixed version WebView2 SDK with your application you will need
+ // to use the following code (update the runtime version to what your shipping.
+
+ //StorageFolder localFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
+ //String fixedPath = Path.Combine(localFolder.Path, "FixedRuntime\\95.0.1020.53");
+ //Debug.WriteLine($"Launch path [{localFolder.Path}]");
+ //Debug.WriteLine($"FixedRuntime path [{fixedPath}]");
+ //Environment.SetEnvironmentVariable("WEBVIEW2_BROWSER_EXECUTABLE_FOLDER", fixedPath);
+
+ }
+
+ ///
+ /// Invoked when the application is launched normally by the end user. Other entry points
+ /// will be used such as when the application is launched to open a specific file.
+ ///
+ /// Details about the launch request and process.
+ protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
+ {
+ m_window = new MainWindow();
+ m_window.Activate();
+ }
+
+ private Window m_window;
+ }
+}
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/MainWindow.xaml b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/MainWindow.xaml
new file mode 100644
index 00000000..e139d329
--- /dev/null
+++ b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/MainWindow.xaml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/MainWindow.xaml.cs b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/MainWindow.xaml.cs
new file mode 100644
index 00000000..2a2c7c0d
--- /dev/null
+++ b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/MainWindow.xaml.cs
@@ -0,0 +1,143 @@
+using Microsoft.UI.Xaml;
+using Microsoft.UI.Xaml.Controls;
+using Microsoft.UI.Xaml.Input;
+using System;
+using Microsoft.Web.WebView2.Core;
+using System.Diagnostics;
+
+// To learn more about WinUI, the WinUI project structure,
+// and more about our project templates, see: http://aka.ms/winui-project-info.
+
+namespace WebView2_WinUI3_Sample
+{
+ ///
+ /// An empty window that can be used on its own or navigated to within a Frame.
+ ///
+ public sealed partial class MainWindow : Window
+ {
+ public MainWindow()
+ {
+ this.InitializeComponent();
+ AddressBar.Text = "https://developer.microsoft.com/en-us/microsoft-edge/webview2/";
+
+ WebView2.NavigationCompleted += WebView2_NavigationCompleted;
+ WebView2.CoreWebView2Initialized += WebView2_CoreWebView2Initialized;
+
+ WebView2.Source = new Uri(AddressBar.Text);
+ StatusUpdate("Ready");
+ SetTitle();
+ }
+
+ private void StatusUpdate(string message)
+ {
+ StatusBar.Text = message;
+ Debug.WriteLine(message);
+ }
+
+ private void WebView2_CoreWebView2Initialized(WebView2 sender, CoreWebView2InitializedEventArgs args)
+ {
+ if (args.Exception != null)
+ {
+ StatusUpdate($"Error initializing WebView2: {args.Exception.Message}");
+ }
+ else
+ {
+ SetTitle(sender);
+ }
+ }
+
+ private async void WebView2_NavigationCompleted(WebView2 sender, CoreWebView2NavigationCompletedEventArgs args)
+ {
+ StatusUpdate("Navigation complete");
+
+ // Update the address bar with the full URL that was navigated to.
+ AddressBar.Text = sender.Source.ToString();
+ }
+
+ private bool TryCreateUri(String potentialUri, out Uri result)
+ {
+ StatusUpdate("TryCreateUri");
+
+ Uri uri;
+ if ((Uri.TryCreate(potentialUri, UriKind.Absolute, out uri) || Uri.TryCreate("http://" + potentialUri, UriKind.Absolute, out uri)) &&
+ (uri.Scheme == Uri.UriSchemeHttp || uri.Scheme == Uri.UriSchemeHttps))
+ {
+ result = uri;
+ return true;
+ }
+ else
+ {
+ StatusUpdate("Unable to configure URI");
+ result = null;
+ return false;
+ }
+ }
+
+ private void TryNavigate()
+ {
+ StatusUpdate("TryNavigate");
+
+ Uri destinationUri;
+ if (TryCreateUri(AddressBar.Text, out destinationUri))
+ {
+ WebView2.Source = destinationUri;
+ }
+ else
+ {
+ StatusUpdate("URI couldn't be figured out use it as a bing search term");
+
+ String bingString = "https://www.bing.com/search?q=" + Uri.EscapeUriString(AddressBar.Text);
+ if (TryCreateUri(bingString, out destinationUri))
+ {
+ AddressBar.Text = destinationUri.AbsoluteUri;
+ WebView2.Source = destinationUri;
+ }
+ else
+ {
+ StatusUpdate("URI couldn't be configured as bing search term, giving up");
+ }
+ }
+ }
+
+ private void Go_OnClick(object sender, RoutedEventArgs e)
+ {
+ StatusUpdate("Go_OnClick: " + AddressBar.Text);
+
+ TryNavigate();
+ }
+
+ private void AddressBar_KeyDown(object sender, KeyRoutedEventArgs e)
+ {
+ if (e.Key == Windows.System.VirtualKey.Enter)
+ {
+ StatusUpdate("AddressBar_KeyDown [Enter]: " + AddressBar.Text);
+
+ e.Handled = true;
+ TryNavigate();
+ }
+ }
+
+ private void SetTitle(WebView2 webView2 = null)
+ {
+ var packageDisplayName = Windows.ApplicationModel.Package.Current.DisplayName;
+ var webView2Version = (webView2 != null) ? " - " + GetWebView2Version(webView2) : string.Empty;
+ Title = $"{packageDisplayName}{webView2Version}";
+ }
+
+ private string GetWebView2Version(WebView2 webView2)
+ {
+ var runtimeVersion = webView2.CoreWebView2.Environment.BrowserVersionString;
+
+ CoreWebView2EnvironmentOptions options = new CoreWebView2EnvironmentOptions();
+ var targetVersionMajorAndRest = options.TargetCompatibleBrowserVersion;
+ var versionList = targetVersionMajorAndRest.Split('.');
+ if (versionList.Length != 4)
+ {
+ return "Invalid SDK build version";
+ }
+ var sdkVersion = versionList[2] + "." + versionList[3];
+
+ return $"{runtimeVersion}; {sdkVersion}";
+ }
+ }
+}
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/Properties/PublishProfiles/win10-arm64.pubxml b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/Properties/PublishProfiles/win10-arm64.pubxml
new file mode 100644
index 00000000..8dd0b28c
--- /dev/null
+++ b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/Properties/PublishProfiles/win10-arm64.pubxml
@@ -0,0 +1,19 @@
+
+
+
+
+ FileSystem
+ arm64
+ win10-arm64
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ False
+ True
+
+
+
\ No newline at end of file
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/Properties/PublishProfiles/win10-x64.pubxml b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/Properties/PublishProfiles/win10-x64.pubxml
new file mode 100644
index 00000000..78bdd7d0
--- /dev/null
+++ b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/Properties/PublishProfiles/win10-x64.pubxml
@@ -0,0 +1,19 @@
+
+
+
+
+ FileSystem
+ x64
+ win10-x64
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ False
+ True
+
+
+
\ No newline at end of file
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/Properties/PublishProfiles/win10-x86.pubxml b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/Properties/PublishProfiles/win10-x86.pubxml
new file mode 100644
index 00000000..9ea100b9
--- /dev/null
+++ b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/Properties/PublishProfiles/win10-x86.pubxml
@@ -0,0 +1,19 @@
+
+
+
+
+ FileSystem
+ x86
+ win10-x86
+ bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\
+ true
+ False
+ True
+
+
+
\ No newline at end of file
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample.csproj b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample.csproj
new file mode 100644
index 00000000..ccd68d05
--- /dev/null
+++ b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample.csproj
@@ -0,0 +1,18 @@
+
+
+ WinExe
+ net6.0-windows10.0.19041.0
+ 10.0.17763.0
+ WebView2_WinUI3_Sample
+ app.manifest
+ x86;x64;ARM64
+ win10-x86;win10-x64;win10-arm64
+ true
+
+
+
+
+
+
+
+
diff --git a/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/app.manifest b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/app.manifest
new file mode 100644
index 00000000..07823b66
--- /dev/null
+++ b/SampleApps/WebView2_WinUI3_Sample/WebView2_WinUI3_Sample/app.manifest
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+ true/PM
+ PerMonitorV2, PerMonitor
+
+
+
diff --git a/SampleApps/WebView2_WinUI3_Sample/readme.md b/SampleApps/WebView2_WinUI3_Sample/readme.md
new file mode 100644
index 00000000..0566c9e7
--- /dev/null
+++ b/SampleApps/WebView2_WinUI3_Sample/readme.md
@@ -0,0 +1,50 @@
+# Introduction
+This sample shows off using a WebView2 control in a WinUi 3 Windows SDK Packaged application.
+
+It also optionaly shows how you would update the application to ship with a fixed WebView2 version instead of using the version installed and running on the Windows computer.
+
+# Relevant directories
+
+| Directory | Contents |
+--- | --- |
+| WebView2_WinUI3_Sample | Project code |
+| WebView2_WinUI3_Sample (Package) | Packaging and distribution project |
+| WebView2_WinUI3_Sample (Package)\FixedRuntime | (Optional) Fixed WebView2 runtime |
+| WebView2_WinUI3_Sample (Package)\FixedRuntime\95.0.1020.53 | (Optional) Fixed WebView2 runtime sample |
+
+
+# Fixed version usage
+If you want to ship a fixed version of the WebView2 runtime with your application you will need to include it in your project.
+
+Instructions can be found at: https://learn.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution
+
+The following assume you are using runtime version 95.0.1020.53, you will change this number to whatever version you are using.
+
+You will need to:
+1 Include the fixed WebView2 runtime in the package project
+
\WebView2_WinUI3_Sample\WebView2_WinUI3_Sample (Package)\FixedRuntime\95.0.1020.53\
+2 Update the package project wapproj file for the version your using
+ < Content Include="FixedRuntime\95.0.1020.53\\**\*.*" >
+3 Uncomment the code in app.xaml.cs to enable the runtime override
+
+public App()
+{
+ this.InitializeComponent();
+ // If you are shipping a fixed version WebView2 SDK with your application you will need
+ // to use the following code (update the runtime version to what you are shipping.
+ StorageFolder localFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
+ String fixedPath = Path.Combine(localFolder.Path, "FixedRuntime\\95.0.1020.53");
+ Debug.WriteLine($"Launch path [{localFolder.Path}]");
+ Debug.WriteLine($"FixedRuntime path [{fixedPath}]");
+ Environment.SetEnvironmentVariable("WEBVIEW2_BROWSER_EXECUTABLE_FOLDER", fixedPath);
+}
+
+4 Update the version information for the appropriate version
+
+String fixedPath = Path.Combine(localFolder.Path, "FixedRuntime\\95.0.1020.53");
+
+
+
+
+
+