diff --git a/samples/NotificationFlyoutSample.Package/Images/LockScreenLogo.scale-200.png b/samples/NotificationFlyoutSample.Package/Images/LockScreenLogo.scale-200.png new file mode 100644 index 0000000..735f57a Binary files /dev/null and b/samples/NotificationFlyoutSample.Package/Images/LockScreenLogo.scale-200.png differ diff --git a/samples/NotificationFlyoutSample.Package/Images/SplashScreen.scale-200.png b/samples/NotificationFlyoutSample.Package/Images/SplashScreen.scale-200.png new file mode 100644 index 0000000..023e7f1 Binary files /dev/null and b/samples/NotificationFlyoutSample.Package/Images/SplashScreen.scale-200.png differ diff --git a/samples/NotificationFlyoutSample.Package/Images/Square150x150Logo.scale-200.png b/samples/NotificationFlyoutSample.Package/Images/Square150x150Logo.scale-200.png new file mode 100644 index 0000000..af49fec Binary files /dev/null and b/samples/NotificationFlyoutSample.Package/Images/Square150x150Logo.scale-200.png differ diff --git a/samples/NotificationFlyoutSample.Package/Images/Square44x44Logo.scale-200.png b/samples/NotificationFlyoutSample.Package/Images/Square44x44Logo.scale-200.png new file mode 100644 index 0000000..ce342a2 Binary files /dev/null and b/samples/NotificationFlyoutSample.Package/Images/Square44x44Logo.scale-200.png differ diff --git a/samples/NotificationFlyoutSample.Package/Images/Square44x44Logo.targetsize-24_altform-unplated.png b/samples/NotificationFlyoutSample.Package/Images/Square44x44Logo.targetsize-24_altform-unplated.png new file mode 100644 index 0000000..f6c02ce Binary files /dev/null and b/samples/NotificationFlyoutSample.Package/Images/Square44x44Logo.targetsize-24_altform-unplated.png differ diff --git a/samples/NotificationFlyoutSample.Package/Images/StoreLogo.png b/samples/NotificationFlyoutSample.Package/Images/StoreLogo.png new file mode 100644 index 0000000..7385b56 Binary files /dev/null and b/samples/NotificationFlyoutSample.Package/Images/StoreLogo.png differ diff --git a/samples/NotificationFlyoutSample.Package/Images/Wide310x150Logo.scale-200.png b/samples/NotificationFlyoutSample.Package/Images/Wide310x150Logo.scale-200.png new file mode 100644 index 0000000..288995b Binary files /dev/null and b/samples/NotificationFlyoutSample.Package/Images/Wide310x150Logo.scale-200.png differ diff --git a/samples/NotificationFlyoutSample.Package/NotificationFlyoutSample.Package.wapproj b/samples/NotificationFlyoutSample.Package/NotificationFlyoutSample.Package.wapproj new file mode 100644 index 0000000..ceb7788 --- /dev/null +++ b/samples/NotificationFlyoutSample.Package/NotificationFlyoutSample.Package.wapproj @@ -0,0 +1,83 @@ + + + + 15.0 + + + + Debug + x86 + + + Release + x86 + + + Debug + x64 + + + Release + x64 + + + Debug + ARM + + + Release + ARM + + + Debug + ARM64 + + + Release + ARM64 + + + Debug + AnyCPU + + + Release + AnyCPU + + + + $(MSBuildExtensionsPath)\Microsoft\DesktopBridge\ + + + + e2f52d15-a3bb-41ce-901c-ab491c50327a + 10.0.19041.0 + 10.0.19041.0 + en-US + false + ..\NotificationFlyoutSample.Host\NotificationFlyoutSample.Host.csproj + + + + Designer + + + + + + + + + + + + + + + + + + True + + + \ No newline at end of file diff --git a/samples/NotificationFlyoutSample.Package/Package.appxmanifest b/samples/NotificationFlyoutSample.Package/Package.appxmanifest new file mode 100644 index 0000000..21fbe0d --- /dev/null +++ b/samples/NotificationFlyoutSample.Package/Package.appxmanifest @@ -0,0 +1,49 @@ + + + + + + + + NotificationFlyoutSample.Package + dan + Images\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/NotificationFlyoutSample.sln b/samples/NotificationFlyoutSample.sln index 49d25ed..9079ea8 100644 --- a/samples/NotificationFlyoutSample.sln +++ b/samples/NotificationFlyoutSample.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30914.41 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NotificationFlyoutSample.Host", "NotificationFlyoutSample.Host\NotificationFlyoutSample.Host.csproj", "{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NotificationFlyoutSample.Host", "NotificationFlyoutSample.Host\NotificationFlyoutSample.Host.csproj", "{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NotificationFlyoutSample", "NotificationFlyoutSample\NotificationFlyoutSample.csproj", "{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}" EndProject @@ -18,6 +18,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NotificationFlyout.Wpf.UI", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NotificationFlyout.Wpf.UI.Controls", "..\src\NotificationFlyout.Wpf.UI.Controls\NotificationFlyout.Wpf.UI.Controls.csproj", "{094A2030-C430-490B-AB26-205385A0D4BF}" EndProject +Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "NotificationFlyoutSample.Package", "NotificationFlyoutSample.Package\NotificationFlyoutSample.Package.wapproj", "{E2F52D15-A3BB-41CE-901C-AB491C50327A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NotificationFlyout.Uwp.UI", "..\src\NotificationFlyout.Uwp.UI\NotificationFlyout.Uwp.UI.csproj", "{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -79,8 +83,8 @@ Global {2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Release|x86.ActiveCfg = Release|x86 {2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Release|x86.Build.0 = Release|x86 {2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Release|x86.Deploy.0 = Release|x86 - {95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|Any CPU.ActiveCfg = Debug|x64 + {95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|Any CPU.Build.0 = Debug|x64 {95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|ARM.ActiveCfg = Debug|Any CPU {95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|ARM.Build.0 = Debug|Any CPU {95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|ARM64.ActiveCfg = Debug|Any CPU @@ -99,8 +103,8 @@ Global {95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|x64.Build.0 = Release|x64 {95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|x86.ActiveCfg = Release|Any CPU {95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|x86.Build.0 = Release|Any CPU - {49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|Any CPU.ActiveCfg = Debug|x64 + {49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|Any CPU.Build.0 = Debug|x64 {49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|ARM.ActiveCfg = Debug|Any CPU {49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|ARM.Build.0 = Debug|Any CPU {49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|ARM64.ActiveCfg = Debug|Any CPU @@ -119,8 +123,8 @@ Global {49BCC188-22D2-468B-89EA-99C810BE790E}.Release|x64.Build.0 = Release|x64 {49BCC188-22D2-468B-89EA-99C810BE790E}.Release|x86.ActiveCfg = Release|Any CPU {49BCC188-22D2-468B-89EA-99C810BE790E}.Release|x86.Build.0 = Release|Any CPU - {094A2030-C430-490B-AB26-205385A0D4BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {094A2030-C430-490B-AB26-205385A0D4BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {094A2030-C430-490B-AB26-205385A0D4BF}.Debug|Any CPU.ActiveCfg = Debug|x64 + {094A2030-C430-490B-AB26-205385A0D4BF}.Debug|Any CPU.Build.0 = Debug|x64 {094A2030-C430-490B-AB26-205385A0D4BF}.Debug|ARM.ActiveCfg = Debug|Any CPU {094A2030-C430-490B-AB26-205385A0D4BF}.Debug|ARM.Build.0 = Debug|Any CPU {094A2030-C430-490B-AB26-205385A0D4BF}.Debug|ARM64.ActiveCfg = Debug|Any CPU @@ -139,6 +143,56 @@ Global {094A2030-C430-490B-AB26-205385A0D4BF}.Release|x64.Build.0 = Release|x64 {094A2030-C430-490B-AB26-205385A0D4BF}.Release|x86.ActiveCfg = Release|Any CPU {094A2030-C430-490B-AB26-205385A0D4BF}.Release|x86.Build.0 = Release|Any CPU + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|Any CPU.ActiveCfg = Debug|x64 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|Any CPU.Build.0 = Debug|x64 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|Any CPU.Deploy.0 = Debug|x64 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|ARM.ActiveCfg = Debug|ARM + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|ARM.Build.0 = Debug|ARM + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|ARM.Deploy.0 = Debug|ARM + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|ARM64.Build.0 = Debug|ARM64 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|ARM64.Deploy.0 = Debug|ARM64 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|x64.ActiveCfg = Debug|x64 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|x64.Build.0 = Debug|x64 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|x64.Deploy.0 = Debug|x64 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|x86.ActiveCfg = Debug|x86 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|x86.Build.0 = Debug|x86 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|x86.Deploy.0 = Debug|x86 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|Any CPU.Build.0 = Release|Any CPU + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|Any CPU.Deploy.0 = Release|Any CPU + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|ARM.ActiveCfg = Release|ARM + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|ARM.Build.0 = Release|ARM + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|ARM.Deploy.0 = Release|ARM + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|ARM64.ActiveCfg = Release|ARM64 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|ARM64.Build.0 = Release|ARM64 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|ARM64.Deploy.0 = Release|ARM64 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|x64.ActiveCfg = Release|x64 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|x64.Build.0 = Release|x64 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|x64.Deploy.0 = Release|x64 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|x86.ActiveCfg = Release|x86 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|x86.Build.0 = Release|x86 + {E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|x86.Deploy.0 = Release|x86 + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|ARM.ActiveCfg = Debug|Any CPU + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|ARM.Build.0 = Debug|Any CPU + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|ARM64.Build.0 = Debug|Any CPU + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|x64.ActiveCfg = Debug|x64 + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|x64.Build.0 = Debug|x64 + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|x86.ActiveCfg = Debug|Any CPU + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|x86.Build.0 = Debug|Any CPU + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|Any CPU.Build.0 = Release|Any CPU + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|ARM.ActiveCfg = Release|Any CPU + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|ARM.Build.0 = Release|Any CPU + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|ARM64.ActiveCfg = Release|Any CPU + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|ARM64.Build.0 = Release|Any CPU + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|x64.ActiveCfg = Release|x64 + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|x64.Build.0 = Release|x64 + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|x86.ActiveCfg = Release|Any CPU + {AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/samples/NotificationFlyoutSample/Shell.xaml b/samples/NotificationFlyoutSample/Shell.xaml index 789a697..b0c62c0 100644 --- a/samples/NotificationFlyoutSample/Shell.xaml +++ b/samples/NotificationFlyoutSample/Shell.xaml @@ -3,8 +3,8 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="using:NotificationFlyout.Uwp.UI.Controls" - xmlns:winui="using:Microsoft.UI.Xaml.Controls" - LightIconSource="/Assets/Icon.ico"> + IconSource="/Assets/Icon.ico" + LightIconSource="/Assets/Icon-Light.ico"> ConvertToIconAsync(this ImageSource imageSource, uint dpi) { var bitmapImage = (BitmapImage)imageSource; - var uri = $"{AppDomain.CurrentDomain.BaseDirectory}{bitmapImage.UriSour‌​ce}".Replace("ms-appx:///", "").Replace("/", "\\"); + if (!ExecutionMode.IsRunningWithIdentity()) + { + var uri = $"{AppDomain.CurrentDomain.BaseDirectory}{bitmapImage.UriSour‌​ce}".Replace("ms-appx:///", "").Replace("/", "\\"); - using var stream = File.OpenRead(uri); - return new Icon(stream, new Size(PInvoke.GetSystemMetricsForDpi((int)SystemMetricFlag.SM_CXICON, dpi), PInvoke.GetSystemMetricsForDpi((int)SystemMetricFlag.SM_CYICON, dpi))); + using var stream = File.OpenRead(uri); + return new Icon(stream, new Size(PInvoke.GetSystemMetricsForDpi((int)SystemMetricFlag.SM_CXICON, dpi), PInvoke.GetSystemMetricsForDpi((int)SystemMetricFlag.SM_CYICON, dpi))); + } + else + { + var storageFile = await Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(bitmapImage.UriSource); + using var stream = await storageFile.OpenStreamForReadAsync(); + return new Icon(stream, new Size(PInvoke.GetSystemMetricsForDpi((int)SystemMetricFlag.SM_CXICON, dpi), PInvoke.GetSystemMetricsForDpi((int)SystemMetricFlag.SM_CYICON, dpi))); + + } } private enum SystemMetricFlag : int diff --git a/src/NotificationFlyout.Uwp.UI/NativeMethods.txt b/src/NotificationFlyout.Uwp.UI/NativeMethods.txt index 2d0c9bc..14fd210 100644 --- a/src/NotificationFlyout.Uwp.UI/NativeMethods.txt +++ b/src/NotificationFlyout.Uwp.UI/NativeMethods.txt @@ -1 +1,2 @@ -GetSystemMetricsForDpi \ No newline at end of file +GetSystemMetricsForDpi +GetCurrentPackageFullName \ No newline at end of file diff --git a/src/NotificationFlyout.Wpf.UI.Controls/NotificationFlyout/NotificationFlyoutXamlHost.cs b/src/NotificationFlyout.Wpf.UI.Controls/NotificationFlyout/NotificationFlyoutXamlHost.cs index cb764f6..84482a1 100644 --- a/src/NotificationFlyout.Wpf.UI.Controls/NotificationFlyout/NotificationFlyoutXamlHost.cs +++ b/src/NotificationFlyout.Wpf.UI.Controls/NotificationFlyout/NotificationFlyoutXamlHost.cs @@ -179,7 +179,7 @@ namespace NotificationFlyout.Wpf.UI.Controls } } - private void UpdateIcons() + private async void UpdateIcons() { if (!_isLoaded) return; @@ -196,7 +196,7 @@ namespace NotificationFlyout.Wpf.UI.Controls var iconSource = _systemPersonalisationHelper.Theme == SystemTheme.Dark ? _defaultIconSource : _lightIconSource; if (iconSource == null) return; - using var icon = iconSource.ConvertToIcon(dpi); + using var icon = await iconSource.ConvertToIconAsync(dpi); _notificationIconHelper.SetIcon(icon.Handle); } @@ -212,6 +212,7 @@ namespace NotificationFlyout.Wpf.UI.Controls flyoutHost.RequestedTheme = requestedTheme; } } + private void UpdateWindow() { if (!_isLoaded) return;