Compare commits
24 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 60d2989ff5 | |||
| c995e45606 | |||
| 9fa476e57d | |||
| b96155be73 | |||
| 68107307b0 | |||
| 30b04b1fcc | |||
| 36259ccb6b | |||
| 49169b1044 | |||
| b920a4622a | |||
| 50033d9aa3 | |||
| 9869470c24 | |||
| 2ace378529 | |||
| 8dce9f882b | |||
| 2d74e40948 | |||
| cadf8f9ec0 | |||
| 266f1938c3 | |||
| 2401235aca | |||
| cef6e99e74 | |||
| ce314678b5 | |||
| 20441d5749 | |||
| c7b80cc997 | |||
| af1800e725 | |||
| ee7530b8b5 | |||
| 84afcf0be3 |
@@ -33,7 +33,7 @@ namespace MyUWPApp
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
5. In the UWP app project, install the [NotificationFlyout.Uwp.UI.Controls](https://www.nuget.org/packages/NotificationFlyout.Uwp.UI.Controls/) NuGet package (latest stable version).
|
5. In the UWP app project, install the [TheXamlGuy.NotificationFlyout.Uwp.UI.Controls](https://www.nuget.org/packages/TheXamlGuy.NotificationFlyout.Uwp.UI.Controls/) NuGet package (latest stable version).
|
||||||
3. Open the `MainPage.xaml` file and replace the contents of this file with the following XAML. Replace `MyUWPApp` with the namespace of your UWP app project.
|
3. Open the `MainPage.xaml` file and replace the contents of this file with the following XAML. Replace `MyUWPApp` with the namespace of your UWP app project.
|
||||||
```xaml
|
```xaml
|
||||||
<controls:NotificationFlyout
|
<controls:NotificationFlyout
|
||||||
@@ -72,7 +72,7 @@ namespace MyUWPApp
|
|||||||
</Project>
|
</Project>
|
||||||
```
|
```
|
||||||
5. In Solution Explorer, right-click the Dependencies node under the WPF project and add a reference to your UWP app project.
|
5. In Solution Explorer, right-click the Dependencies node under the WPF project and add a reference to your UWP app project.
|
||||||
6. In the WPF app project, install the [Microsoft.Toolkit.Wpf.UI.XamlHost](https://www.nuget.org/packages/Microsoft.Toolkit.Wpf.UI.XamlHost) and [NotificationFlyout.Wpf.UI.Controls](https://www.nuget.org/packages/NotificationFlyout.Wpf.UI.Controls/) NuGet packages (latest stable version).
|
6. In the WPF app project, install the [Microsoft.Toolkit.Wpf.UI.XamlHost](https://www.nuget.org/packages/Microsoft.Toolkit.Wpf.UI.XamlHost) and [TheXamlGuy.NotificationFlyout.Wpf.UI.Controls](https://www.nuget.org/packages/TheXamlGuy.NotificationFlyout.Wpf.UI.Controls/) NuGet packages (latest stable version).
|
||||||
7. Open the `App.xaml` file and replace the contents of this file with the following XAML. Replace `MyWPFApp` with the namespace of your WPF app project.
|
7. Open the `App.xaml` file and replace the contents of this file with the following XAML. Replace `MyWPFApp` with the namespace of your WPF app project.
|
||||||
```xaml
|
```xaml
|
||||||
<Application
|
<Application
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
<Project Sdk="MSBuild.Sdk.Extras">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>WinExe</OutputType>
|
|
||||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
|
||||||
<UseWPF>true</UseWPF>
|
|
||||||
<Platforms>x64</Platforms>
|
|
||||||
<AssetTargetFallback>uap10.0.19041</AssetTargetFallback>
|
|
||||||
<StartupObject>NotificationFlyoutSample.Host.Program</StartupObject>
|
|
||||||
<EnableTypeInfoReflection>false</EnableTypeInfoReflection>
|
|
||||||
<EnableXBindDiagnostics>false</EnableXBindDiagnostics>
|
|
||||||
<MSBuildWarningsAsMessages>NU1702</MSBuildWarningsAsMessages>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Microsoft.Toolkit.Wpf.UI.XamlHost" Version="6.1.2" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\src\NotificationFlyout.Uwp.UI.Controls\NotificationFlyout.Uwp.UI.Controls.csproj" />
|
|
||||||
<ProjectReference Include="..\..\src\NotificationFlyout.Uwp.UI\NotificationFlyout.Uwp.UI.csproj" />
|
|
||||||
<ProjectReference Include="..\..\src\NotificationFlyout.Wpf.UI.Controls\NotificationFlyout.Wpf.UI.Controls.csproj" />
|
|
||||||
<ProjectReference Include="..\..\src\NotificationFlyout.Wpf.UI\NotificationFlyout.Wpf.UI.csproj" />
|
|
||||||
<ProjectReference Include="..\NotificationFlyoutSample\NotificationFlyoutSample.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
using NotificationFlyout.Wpf.UI.Controls;
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace NotificationFlyoutSample.Host
|
|
||||||
{
|
|
||||||
public class Program
|
|
||||||
{
|
|
||||||
[STAThread()]
|
|
||||||
public static void Main()
|
|
||||||
{
|
|
||||||
using (new NotificationFlyoutSample.App())
|
|
||||||
{
|
|
||||||
var app = new App();
|
|
||||||
new NotificationFlyoutApplication
|
|
||||||
{
|
|
||||||
Flyout = new Shell()
|
|
||||||
};
|
|
||||||
app.Run();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||||
|
<UseWPF>true</UseWPF>
|
||||||
|
<Platforms>AnyCPU;x64</Platforms>
|
||||||
|
<StartupObject>NotificationFlyoutSample.Host.Program</StartupObject>
|
||||||
|
<AssetTargetFallback>uap10.0.19041</AssetTargetFallback>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.Toolkit.Wpf.UI.XamlHost" Version="6.1.2" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\src\TheXamlGuy.NotificationFlyout.Common\TheXamlGuy.NotificationFlyout.Common.csproj" />
|
||||||
|
<ProjectReference Include="..\..\src\TheXamlGuy.NotificationFlyout.Shared.UI\TheXamlGuy.NotificationFlyout.Shared.UI.csproj" />
|
||||||
|
<ProjectReference Include="..\..\src\TheXamlGuy.NotificationFlyout.Wpf.UI.Controls\TheXamlGuy.NotificationFlyout.Wpf.UI.Controls.csproj" />
|
||||||
|
<ProjectReference Include="..\..\src\TheXamlGuy.NotificationFlyout.Wpf.UI\TheXamlGuy.NotificationFlyout.Wpf.UI.csproj" />
|
||||||
|
<ProjectReference Include="..\NotificationFlyoutSample\NotificationFlyoutSample.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Update="Microsoft.VCRTForwarders.140" Version="1.0.7" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
using NotificationFlyout.Wpf.UI.Controls;
|
using System;
|
||||||
using System;
|
using TheXamlGuy.NotificationFlyout.Wpf.UI.Controls;
|
||||||
|
|
||||||
namespace NotificationFlyoutSample.Host
|
namespace NotificationFlyoutSample.Host
|
||||||
{
|
{
|
||||||
@@ -13,7 +13,7 @@ namespace NotificationFlyoutSample.Host
|
|||||||
var app = new App();
|
var app = new App();
|
||||||
new NotificationFlyoutApplication
|
new NotificationFlyoutApplication
|
||||||
{
|
{
|
||||||
Flyout = new Shell()
|
Flyout = new SampleFlyout()
|
||||||
};
|
};
|
||||||
app.Run();
|
app.Run();
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
@@ -1,83 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup Condition="'$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '15.0'">
|
|
||||||
<VisualStudioVersion>15.0</VisualStudioVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|x86">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x86</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x86">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x86</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|x64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|x64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>x64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|ARM">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|ARM">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>ARM</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|ARM64">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>ARM64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|ARM64">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>ARM64</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|AnyCPU">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>AnyCPU</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|AnyCPU">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>AnyCPU</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<WapProjPath Condition="'$(WapProjPath)'==''">$(MSBuildExtensionsPath)\Microsoft\DesktopBridge\</WapProjPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(WapProjPath)\Microsoft.DesktopBridge.props" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<ProjectGuid>e2f52d15-a3bb-41ce-901c-ab491c50327a</ProjectGuid>
|
|
||||||
<TargetPlatformVersion>10.0.19041.0</TargetPlatformVersion>
|
|
||||||
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
|
||||||
<DefaultLanguage>en-US</DefaultLanguage>
|
|
||||||
<AppxPackageSigningEnabled>false</AppxPackageSigningEnabled>
|
|
||||||
<EntryPointProjectUniqueName>..\NotificationFlyoutSample.Host\NotificationFlyoutSample.Host.csproj</EntryPointProjectUniqueName>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<AppxManifest Include="Package.appxmanifest">
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</AppxManifest>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Content Include="Images\SplashScreen.scale-200.png" />
|
|
||||||
<Content Include="Images\LockScreenLogo.scale-200.png" />
|
|
||||||
<Content Include="Images\Square150x150Logo.scale-200.png" />
|
|
||||||
<Content Include="Images\Square44x44Logo.scale-200.png" />
|
|
||||||
<Content Include="Images\Square44x44Logo.targetsize-24_altform-unplated.png" />
|
|
||||||
<Content Include="Images\StoreLogo.png" />
|
|
||||||
<Content Include="Images\Wide310x150Logo.scale-200.png" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(WapProjPath)\Microsoft.DesktopBridge.targets" />
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.19041.8" PrivateAssets="all" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\NotificationFlyoutSample.Host\NotificationFlyoutSample.Host.csproj">
|
|
||||||
<SkipGetTargetFrameworkProperties>True</SkipGetTargetFrameworkProperties>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<Package
|
|
||||||
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
|
|
||||||
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
|
||||||
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
|
|
||||||
IgnorableNamespaces="uap rescap">
|
|
||||||
|
|
||||||
<Identity
|
|
||||||
Name="b15dd450-41a7-49e9-bc4f-8192a7063ae2"
|
|
||||||
Publisher="CN=dan"
|
|
||||||
Version="1.0.0.0" />
|
|
||||||
|
|
||||||
<Properties>
|
|
||||||
<DisplayName>NotificationFlyoutSample.Package</DisplayName>
|
|
||||||
<PublisherDisplayName>dan</PublisherDisplayName>
|
|
||||||
<Logo>Images\StoreLogo.png</Logo>
|
|
||||||
</Properties>
|
|
||||||
|
|
||||||
<Dependencies>
|
|
||||||
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
|
|
||||||
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14393.0" MaxVersionTested="10.0.14393.0" />
|
|
||||||
</Dependencies>
|
|
||||||
|
|
||||||
<Resources>
|
|
||||||
<Resource Language="x-generate"/>
|
|
||||||
</Resources>
|
|
||||||
|
|
||||||
<Applications>
|
|
||||||
<Application Id="App"
|
|
||||||
Executable="$targetnametoken$.exe"
|
|
||||||
EntryPoint="$targetentrypoint$">
|
|
||||||
<uap:VisualElements
|
|
||||||
DisplayName="NotificationFlyoutSample.Package"
|
|
||||||
Description="NotificationFlyoutSample.Package"
|
|
||||||
BackgroundColor="transparent"
|
|
||||||
Square150x150Logo="Images\Square150x150Logo.png"
|
|
||||||
Square44x44Logo="Images\Square44x44Logo.png">
|
|
||||||
<uap:DefaultTile Wide310x150Logo="Images\Wide310x150Logo.png" />
|
|
||||||
<uap:SplashScreen Image="Images\SplashScreen.png" />
|
|
||||||
</uap:VisualElements>
|
|
||||||
</Application>
|
|
||||||
</Applications>
|
|
||||||
|
|
||||||
<Capabilities>
|
|
||||||
<Capability Name="internetClient" />
|
|
||||||
<rescap:Capability Name="runFullTrust" />
|
|
||||||
</Capabilities>
|
|
||||||
</Package>
|
|
||||||
@@ -3,8 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
|||||||
# Visual Studio Version 16
|
# Visual Studio Version 16
|
||||||
VisualStudioVersion = 16.0.30914.41
|
VisualStudioVersion = 16.0.30914.41
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
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}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NotificationFlyoutSample", "NotificationFlyoutSample\NotificationFlyoutSample.csproj", "{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{1E895953-2231-4ACA-84A6-64F8F57FE86A}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{1E895953-2231-4ACA-84A6-64F8F57FE86A}"
|
||||||
@@ -12,15 +10,17 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
|
|||||||
global.json = global.json
|
global.json = global.json
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NotificationFlyout.Uwp.UI.Controls", "..\src\NotificationFlyout.Uwp.UI.Controls\NotificationFlyout.Uwp.UI.Controls.csproj", "{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NotificationFlyoutSample.Host", "NotificationFlyoutSample.Host\NotificationFlyoutSample.Host.csproj", "{591F26F7-C057-434A-B612-AEB37B1234AE}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NotificationFlyout.Wpf.UI", "..\src\NotificationFlyout.Wpf.UI\NotificationFlyout.Wpf.UI.csproj", "{49BCC188-22D2-468B-89EA-99C810BE790E}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TheXamlGuy.NotificationFlyout.Shared.UI", "..\src\TheXamlGuy.NotificationFlyout.Shared.UI\TheXamlGuy.NotificationFlyout.Shared.UI.csproj", "{38E34B61-E389-4EE1-8D5E-5372568DE982}"
|
||||||
EndProject
|
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}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TheXamlGuy.NotificationFlyout.Uwp.UI.Controls", "..\src\TheXamlGuy.NotificationFlyout.Uwp.UI.Controls\TheXamlGuy.NotificationFlyout.Uwp.UI.Controls.csproj", "{ACA2CC23-A9AE-427F-A900-ED75A96698F4}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "NotificationFlyoutSample.Package", "NotificationFlyoutSample.Package\NotificationFlyoutSample.Package.wapproj", "{E2F52D15-A3BB-41CE-901C-AB491C50327A}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TheXamlGuy.NotificationFlyout.Wpf.UI.Controls", "..\src\TheXamlGuy.NotificationFlyout.Wpf.UI.Controls\TheXamlGuy.NotificationFlyout.Wpf.UI.Controls.csproj", "{BE3B1281-CD44-4291-BE1D-33FC13E61E06}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NotificationFlyout.Uwp.UI", "..\src\NotificationFlyout.Uwp.UI\NotificationFlyout.Uwp.UI.csproj", "{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TheXamlGuy.NotificationFlyout.Wpf.UI", "..\src\TheXamlGuy.NotificationFlyout.Wpf.UI\TheXamlGuy.NotificationFlyout.Wpf.UI.csproj", "{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TheXamlGuy.NotificationFlyout.Common", "..\src\TheXamlGuy.NotificationFlyout.Common\TheXamlGuy.NotificationFlyout.Common.csproj", "{293834F2-4A99-4C92-A165-7C617D98FCC7}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@@ -36,26 +36,6 @@ Global
|
|||||||
Release|x86 = Release|x86
|
Release|x86 = Release|x86
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|Any CPU.ActiveCfg = Debug|x64
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|Any CPU.Build.0 = Debug|x64
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Debug|Any CPU.ActiveCfg = Debug|x64
|
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Debug|Any CPU.Build.0 = Debug|x64
|
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Debug|Any CPU.Build.0 = Debug|x64
|
||||||
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Debug|ARM.ActiveCfg = Debug|ARM
|
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||||
@@ -83,116 +63,126 @@ Global
|
|||||||
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Release|x86.ActiveCfg = Release|x86
|
{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.Build.0 = Release|x86
|
||||||
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Release|x86.Deploy.0 = Release|x86
|
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Release|x86.Deploy.0 = Release|x86
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|Any CPU.ActiveCfg = Debug|x64
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|Any CPU.Build.0 = Debug|x64
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Debug|Any CPU.Build.0 = Debug|x64
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|ARM.Build.0 = Debug|Any CPU
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|ARM64.Build.0 = Debug|Any CPU
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|x64.ActiveCfg = Debug|x64
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|x64.Build.0 = Debug|x64
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Debug|x64.Build.0 = Debug|x64
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|x86.Build.0 = Debug|Any CPU
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|Any CPU.Build.0 = Release|Any CPU
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|ARM.ActiveCfg = Release|Any CPU
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|ARM.Build.0 = Release|Any CPU
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|ARM64.ActiveCfg = Release|Any CPU
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|ARM64.Build.0 = Release|Any CPU
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|x64.ActiveCfg = Release|x64
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Release|x64.ActiveCfg = Release|x64
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|x64.Build.0 = Release|x64
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Release|x64.Build.0 = Release|x64
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|x86.ActiveCfg = Release|Any CPU
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|x86.Build.0 = Release|Any CPU
|
{591F26F7-C057-434A-B612-AEB37B1234AE}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|Any CPU.ActiveCfg = Debug|x64
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|Any CPU.Build.0 = Debug|x64
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|ARM.Build.0 = Debug|Any CPU
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|ARM64.Build.0 = Debug|Any CPU
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|x64.ActiveCfg = Debug|x64
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|x64.Build.0 = Debug|x64
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Debug|x64.Build.0 = Debug|x64
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|x86.Build.0 = Debug|Any CPU
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Release|Any CPU.Build.0 = Release|Any CPU
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Release|ARM.ActiveCfg = Release|Any CPU
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Release|ARM.Build.0 = Release|Any CPU
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Release|ARM64.ActiveCfg = Release|Any CPU
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Release|ARM64.Build.0 = Release|Any CPU
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Release|x64.ActiveCfg = Release|x64
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Release|x64.ActiveCfg = Release|x64
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Release|x64.Build.0 = Release|x64
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Release|x64.Build.0 = Release|x64
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Release|x86.ActiveCfg = Release|Any CPU
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Release|x86.Build.0 = Release|Any CPU
|
{38E34B61-E389-4EE1-8D5E-5372568DE982}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Debug|Any CPU.ActiveCfg = Debug|x64
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Debug|Any CPU.Build.0 = Debug|x64
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Debug|ARM.Build.0 = Debug|Any CPU
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Debug|ARM64.Build.0 = Debug|Any CPU
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Debug|x64.ActiveCfg = Debug|x64
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Debug|x64.Build.0 = Debug|x64
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Debug|x64.Build.0 = Debug|x64
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Debug|x86.Build.0 = Debug|Any CPU
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Release|Any CPU.Build.0 = Release|Any CPU
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Release|ARM.ActiveCfg = Release|Any CPU
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Release|ARM.Build.0 = Release|Any CPU
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Release|ARM64.ActiveCfg = Release|Any CPU
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Release|ARM64.Build.0 = Release|Any CPU
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Release|x64.ActiveCfg = Release|x64
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Release|x64.ActiveCfg = Release|x64
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Release|x64.Build.0 = Release|x64
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Release|x64.Build.0 = Release|x64
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Release|x86.ActiveCfg = Release|Any CPU
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Release|x86.Build.0 = Release|Any CPU
|
{ACA2CC23-A9AE-427F-A900-ED75A96698F4}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|Any CPU.ActiveCfg = Debug|x64
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|Any CPU.Build.0 = Debug|x64
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|Any CPU.Deploy.0 = Debug|x64
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|ARM.ActiveCfg = Debug|ARM
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|ARM.Build.0 = Debug|ARM
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|ARM.Deploy.0 = Debug|ARM
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|ARM64.Build.0 = Debug|ARM64
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Debug|x64.Build.0 = Debug|x64
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|ARM64.Deploy.0 = Debug|ARM64
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|x64.ActiveCfg = Debug|x64
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|x64.Build.0 = Debug|x64
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|x64.Deploy.0 = Debug|x64
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|x86.ActiveCfg = Debug|x86
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|x86.Build.0 = Debug|x86
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Debug|x86.Deploy.0 = Debug|x86
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|Any CPU.Build.0 = Release|Any CPU
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Release|x64.ActiveCfg = Release|x64
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Release|x64.Build.0 = Release|x64
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|ARM.ActiveCfg = Release|ARM
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|ARM.Build.0 = Release|ARM
|
{BE3B1281-CD44-4291-BE1D-33FC13E61E06}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|ARM.Deploy.0 = Release|ARM
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|ARM64.ActiveCfg = Release|ARM64
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|ARM64.Build.0 = Release|ARM64
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|ARM64.Deploy.0 = Release|ARM64
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|x64.ActiveCfg = Release|x64
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|x64.Build.0 = Release|x64
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|x64.Deploy.0 = Release|x64
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|x86.ActiveCfg = Release|x86
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Debug|x64.Build.0 = Debug|x64
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|x86.Build.0 = Release|x86
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{E2F52D15-A3BB-41CE-901C-AB491C50327A}.Release|x86.Deploy.0 = Release|x86
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|ARM.Build.0 = Debug|Any CPU
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|ARM64.Build.0 = Debug|Any CPU
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|x64.ActiveCfg = Debug|x64
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Release|x64.ActiveCfg = Release|x64
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|x64.Build.0 = Debug|x64
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Release|x64.Build.0 = Release|x64
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Debug|x86.Build.0 = Debug|Any CPU
|
{A38BA7F7-5FEC-49F2-9FEB-F80AFE5934AF}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|Any CPU.Build.0 = Release|Any CPU
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|ARM.ActiveCfg = Release|Any CPU
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|ARM.Build.0 = Release|Any CPU
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|ARM64.ActiveCfg = Release|Any CPU
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|ARM64.Build.0 = Release|Any CPU
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|x64.ActiveCfg = Release|x64
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|x64.Build.0 = Release|x64
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Debug|x64.Build.0 = Debug|x64
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|x86.ActiveCfg = Release|Any CPU
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}.Release|x86.Build.0 = Release|Any CPU
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Release|x64.Build.0 = Release|x64
|
||||||
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{293834F2-4A99-4C92-A165-7C617D98FCC7}.Release|x86.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 18 KiB |
@@ -1,6 +0,0 @@
|
|||||||
<Application
|
|
||||||
x:Class="NotificationFlyoutSample.Host.App"
|
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
|
||||||
<Application.Resources />
|
|
||||||
</Application>
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Configuration;
|
|
||||||
using System.Data;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Windows;
|
|
||||||
|
|
||||||
namespace NotificationFlyoutSample.Host
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Interaction logic for App.xaml
|
|
||||||
/// </summary>
|
|
||||||
public partial class App : Application
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
using System.Windows;
|
|
||||||
|
|
||||||
[assembly: ThemeInfo(
|
|
||||||
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
|
|
||||||
//(used if a resource is not found in the page,
|
|
||||||
// or application resource dictionaries)
|
|
||||||
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
|
|
||||||
//(used if a resource is not found in the page,
|
|
||||||
// app, or any theme specific resource dictionaries)
|
|
||||||
)]
|
|
||||||
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 18 KiB |
@@ -1,35 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>WinExe</OutputType>
|
|
||||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
|
||||||
<UseWPF>true</UseWPF>
|
|
||||||
<Platforms>x64</Platforms>
|
|
||||||
<AssetTargetFallback>uap10.0.19041</AssetTargetFallback>
|
|
||||||
<StartupObject>NotificationFlyoutSample.Host.Program</StartupObject>
|
|
||||||
<EnableTypeInfoReflection>false</EnableTypeInfoReflection>
|
|
||||||
<EnableXBindDiagnostics>false</EnableXBindDiagnostics>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<None Remove="Assets\Icon-Light.ico" />
|
|
||||||
<None Remove="Assets\Icon.ico" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Microsoft.Toolkit.Wpf.UI.XamlHost" Version="6.1.2" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\..\src\NotificationFlyout.Uwp.UI.Controls\NotificationFlyout.Uwp.UI.Controls.csproj" />
|
|
||||||
<ProjectReference Include="..\..\..\src\NotificationFlyout.Wpf.UI.Controls\NotificationFlyout.Wpf.UI.Controls.csproj" />
|
|
||||||
<ProjectReference Include="..\..\..\src\NotificationFlyout.Wpf.UI\NotificationFlyout.Wpf.UI.csproj" />
|
|
||||||
<ProjectReference Include="..\NotificationFlyoutSample\NotificationFlyoutSample.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Resource Include="Assets\Icon-Light.ico" />
|
|
||||||
<Resource Include="Assets\Icon.ico" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
@@ -120,11 +120,8 @@
|
|||||||
<DependentUpon>App.xaml</DependentUpon>
|
<DependentUpon>App.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Shell.xaml.cs">
|
<Compile Include="SampleFlyout.xaml.cs">
|
||||||
<DependentUpon>Shell.xaml</DependentUpon>
|
<DependentUpon>SampleFlyout.xaml</DependentUpon>
|
||||||
</Compile>
|
|
||||||
<Compile Include="WindowContent.xaml.cs">
|
|
||||||
<DependentUpon>WindowContent.xaml</DependentUpon>
|
|
||||||
</Compile>
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -133,8 +130,6 @@
|
|||||||
</AppxManifest>
|
</AppxManifest>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="Assets\Icon-Light.ico" />
|
|
||||||
<Content Include="Assets\Icon.ico" />
|
|
||||||
<Content Include="Properties\Default.rd.xml" />
|
<Content Include="Properties\Default.rd.xml" />
|
||||||
<Content Include="Assets\LockScreenLogo.scale-200.png" />
|
<Content Include="Assets\LockScreenLogo.scale-200.png" />
|
||||||
<Content Include="Assets\SplashScreen.scale-200.png" />
|
<Content Include="Assets\SplashScreen.scale-200.png" />
|
||||||
@@ -152,7 +147,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform">
|
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform">
|
||||||
<Version>6.2.11</Version>
|
<Version>6.2.12</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.Toolkit.Win32.UI.XamlApplication">
|
<PackageReference Include="Microsoft.Toolkit.Win32.UI.XamlApplication">
|
||||||
<Version>6.1.2</Version>
|
<Version>6.1.2</Version>
|
||||||
@@ -162,23 +157,19 @@
|
|||||||
</PackageReference>
|
</PackageReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Page Include="Shell.xaml">
|
<Page Include="SampleFlyout.xaml">
|
||||||
<SubType>Designer</SubType>
|
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
</Page>
|
|
||||||
<Page Include="WindowContent.xaml">
|
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
<Generator>MSBuild:Compile</Generator>
|
|
||||||
</Page>
|
</Page>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\src\NotificationFlyout.Uwp.UI.Controls\NotificationFlyout.Uwp.UI.Controls.csproj">
|
<ProjectReference Include="..\..\src\TheXamlGuy.NotificationFlyout.Uwp.UI.Controls\TheXamlGuy.NotificationFlyout.Uwp.UI.Controls.csproj">
|
||||||
<Project>{95f851e4-87a5-4bb7-953e-c0fe3b306f0e}</Project>
|
<Project>{a970d11a-ad9f-4a3f-a509-16fa5f9ac779}</Project>
|
||||||
<Name>NotificationFlyout.Uwp.UI.Controls</Name>
|
<Name>TheXamlGuy.NotificationFlyout.Uwp.UI.Controls</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\..\src\NotificationFlyout.Uwp.UI\NotificationFlyout.Uwp.UI.csproj">
|
<ProjectReference Include="..\..\src\TheXamlGuy.NotificationFlyout.Shared.UI\TheXamlGuy.NotificationFlyout.Shared.UI.csproj">
|
||||||
<Project>{AFCE4980-A641-4BBB-A745-F0D4E54A0D86}</Project>
|
<Project>{a970d11a-ad9f-4a3f-a509-16fa5f9ac779}</Project>
|
||||||
<Name>NotificationFlyout.Uwp.UI</Name>
|
<Name>TheXamlGuy.NotificationFlyout.Shared.UI</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' ">
|
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' ">
|
||||||
@@ -196,5 +187,6 @@
|
|||||||
<EnableTypeInfoReflection>false</EnableTypeInfoReflection>
|
<EnableTypeInfoReflection>false</EnableTypeInfoReflection>
|
||||||
<EnableXBindDiagnostics>false</EnableXBindDiagnostics>
|
<EnableXBindDiagnostics>false</EnableXBindDiagnostics>
|
||||||
<MSBuildWarningsAsMessages>CS8305</MSBuildWarningsAsMessages>
|
<MSBuildWarningsAsMessages>CS8305</MSBuildWarningsAsMessages>
|
||||||
|
<LangVersion>8.0</LangVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -3,22 +3,24 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
|||||||
# Visual Studio Version 16
|
# Visual Studio Version 16
|
||||||
VisualStudioVersion = 16.0.30914.41
|
VisualStudioVersion = 16.0.30914.41
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
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
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{1E895953-2231-4ACA-84A6-64F8F57FE86A}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{1E895953-2231-4ACA-84A6-64F8F57FE86A}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
global.json = global.json
|
global.json = global.json
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NotificationFlyout.Uwp.UI.Controls", "..\..\src\NotificationFlyout.Uwp.UI.Controls\NotificationFlyout.Uwp.UI.Controls.csproj", "{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TheXamlGuy.NotificationFlyout.Common", "..\..\src\TheXamlGuy.NotificationFlyout.Common\TheXamlGuy.NotificationFlyout.Common.csproj", "{C59F605A-7AAF-43E5-A312-85B9771F2FE4}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NotificationFlyout.Wpf.UI", "..\..\src\NotificationFlyout.Wpf.UI\NotificationFlyout.Wpf.UI.csproj", "{49BCC188-22D2-468B-89EA-99C810BE790E}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TheXamlGuy.NotificationFlyout.Shared.UI", "..\..\src\TheXamlGuy.NotificationFlyout.Shared.UI\TheXamlGuy.NotificationFlyout.Shared.UI.csproj", "{E313D2F7-6515-4B8E-8F81-7E886E866853}"
|
||||||
EndProject
|
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}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TheXamlGuy.NotificationFlyout.Uwp.UI.Controls", "..\..\src\TheXamlGuy.NotificationFlyout.Uwp.UI.Controls\TheXamlGuy.NotificationFlyout.Uwp.UI.Controls.csproj", "{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NotificationFlyout.Uwp.UI", "..\..\src\NotificationFlyout.Uwp.UI\NotificationFlyout.Uwp.UI.csproj", "{ADE190A2-F751-4836-B8F4-BF56694A4B3F}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TheXamlGuy.NotificationFlyout.Wpf.UI", "..\..\src\TheXamlGuy.NotificationFlyout.Wpf.UI\TheXamlGuy.NotificationFlyout.Wpf.UI.csproj", "{4FBDACA8-7A79-40E4-A20D-30139A37C680}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TheXamlGuy.NotificationFlyout.Wpf.UI.Controls", "..\..\src\TheXamlGuy.NotificationFlyout.Wpf.UI.Controls\TheXamlGuy.NotificationFlyout.Wpf.UI.Controls.csproj", "{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NotificationFlyoutSample", "NotificationFlyoutSample.csproj", "{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NotificationFlyoutSample.Launcher", "..\NotificationFlyoutSample.Launcher\NotificationFlyoutSample.Launcher.csproj", "{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@@ -34,28 +36,107 @@ Global
|
|||||||
Release|x86 = Release|x86
|
Release|x86 = Release|x86
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|Any CPU.ActiveCfg = Debug|x64
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|Any CPU.Build.0 = Debug|x64
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|ARM.Build.0 = Debug|Any CPU
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|ARM64.Build.0 = Debug|Any CPU
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|x64.ActiveCfg = Debug|x64
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|x64.Build.0 = Debug|x64
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Debug|x64.Build.0 = Debug|x64
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Debug|x86.Build.0 = Debug|Any CPU
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|Any CPU.Build.0 = Release|Any CPU
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|ARM.ActiveCfg = Release|Any CPU
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|ARM.Build.0 = Release|Any CPU
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|ARM64.ActiveCfg = Release|Any CPU
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|ARM64.Build.0 = Release|Any CPU
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|x64.ActiveCfg = Release|Any CPU
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Release|x64.ActiveCfg = Release|x64
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|x64.Build.0 = Release|Any CPU
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Release|x64.Build.0 = Release|x64
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|x86.ActiveCfg = Release|Any CPU
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{D13742AD-DB71-4269-B3AF-7CA8C4E51A19}.Release|x86.Build.0 = Release|Any CPU
|
{C59F605A-7AAF-43E5-A312-85B9771F2FE4}.Release|x86.Build.0 = Release|Any CPU
|
||||||
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Debug|Any CPU.ActiveCfg = Debug|x64
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Debug|Any CPU.Build.0 = Debug|x64
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Release|x64.Build.0 = Release|x64
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{E313D2F7-6515-4B8E-8F81-7E886E866853}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Release|x64.Build.0 = Release|x64
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{A970D11A-AD9F-4A3F-A509-16FA5F9AC779}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Release|x64.Build.0 = Release|x64
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{4FBDACA8-7A79-40E4-A20D-30139A37C680}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Release|x64.Build.0 = Release|x64
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{0AB1D328-BBB0-434B-965A-48ACDB6CBFB7}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||||
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Debug|ARM.ActiveCfg = Debug|ARM
|
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||||
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Debug|ARM.Build.0 = Debug|ARM
|
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Debug|ARM.Build.0 = Debug|ARM
|
||||||
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Debug|ARM.Deploy.0 = Debug|ARM
|
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Debug|ARM.Deploy.0 = Debug|ARM
|
||||||
@@ -81,86 +162,26 @@ Global
|
|||||||
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Release|x86.ActiveCfg = Release|x86
|
{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.Build.0 = Release|x86
|
||||||
{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}.Release|x86.Deploy.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
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|ARM.Build.0 = Debug|Any CPU
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|ARM64.Build.0 = Debug|Any CPU
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|x64.ActiveCfg = Debug|x64
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|x64.Build.0 = Debug|x64
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Debug|x64.Build.0 = Debug|x64
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Debug|x86.Build.0 = Debug|Any CPU
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|Any CPU.Build.0 = Release|Any CPU
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|ARM.ActiveCfg = Release|Any CPU
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|ARM.Build.0 = Release|Any CPU
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Release|ARM.Build.0 = Release|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|ARM64.ActiveCfg = Release|Any CPU
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|ARM64.Build.0 = Release|Any CPU
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Release|ARM64.Build.0 = Release|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|x64.ActiveCfg = Release|x64
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Release|x64.ActiveCfg = Release|x64
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|x64.Build.0 = Release|x64
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Release|x64.Build.0 = Release|x64
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|x86.ActiveCfg = Release|Any CPU
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
{95F851E4-87A5-4BB7-953E-C0FE3B306F0E}.Release|x86.Build.0 = Release|Any CPU
|
{DB86CC51-8AA1-46A4-B382-B05DE08E0FF6}.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|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
|
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{49BCC188-22D2-468B-89EA-99C810BE790E}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{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|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
|
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{094A2030-C430-490B-AB26-205385A0D4BF}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{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
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Release|x64.Build.0 = Release|x64
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{ADE190A2-F751-4836-B8F4-BF56694A4B3F}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
<xamlhost:XamlApplication
|
|
||||||
x:Class="NotificationFlyoutSample.App"
|
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:xamlhost="using:Microsoft.Toolkit.Win32.UI.XamlHost">
|
|
||||||
<xamlhost:XamlApplication.Resources>
|
|
||||||
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
|
|
||||||
</xamlhost:XamlApplication.Resources>
|
|
||||||
</xamlhost:XamlApplication>
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
using Microsoft.Toolkit.Win32.UI.XamlHost;
|
|
||||||
|
|
||||||
namespace NotificationFlyoutSample
|
|
||||||
{
|
|
||||||
public sealed partial class App : XamlApplication
|
|
||||||
{
|
|
||||||
public App()
|
|
||||||
{
|
|
||||||
Initialize();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
@@ -1,192 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
|
||||||
<ProjectGuid>{2057ADE0-C61E-45EE-BB7E-A469FE4D4C41}</ProjectGuid>
|
|
||||||
<OutputType>AppContainerExe</OutputType>
|
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
|
||||||
<RootNamespace>NotificationFlyoutSample</RootNamespace>
|
|
||||||
<AssemblyName>NotificationFlyoutSample</AssemblyName>
|
|
||||||
<DefaultLanguage>en-US</DefaultLanguage>
|
|
||||||
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
|
|
||||||
<TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.19041.0</TargetPlatformVersion>
|
|
||||||
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
|
||||||
<MinimumVisualStudioVersion>14</MinimumVisualStudioVersion>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
|
||||||
<WindowsXamlEnableOverview>true</WindowsXamlEnableOverview>
|
|
||||||
<AppxPackageSigningEnabled>false</AppxPackageSigningEnabled>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
|
||||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
|
||||||
<NoWarn>;2008</NoWarn>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
|
||||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
|
||||||
<OutputPath>bin\x86\Release\</OutputPath>
|
|
||||||
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<NoWarn>;2008</NoWarn>
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<PlatformTarget>x86</PlatformTarget>
|
|
||||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
|
||||||
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM'">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<OutputPath>bin\ARM\Debug\</OutputPath>
|
|
||||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
|
||||||
<NoWarn>;2008</NoWarn>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<PlatformTarget>ARM</PlatformTarget>
|
|
||||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM'">
|
|
||||||
<OutputPath>bin\ARM\Release\</OutputPath>
|
|
||||||
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<NoWarn>;2008</NoWarn>
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<PlatformTarget>ARM</PlatformTarget>
|
|
||||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
|
||||||
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM64'">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<OutputPath>bin\ARM64\Debug\</OutputPath>
|
|
||||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
|
||||||
<NoWarn>;2008</NoWarn>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<PlatformTarget>ARM64</PlatformTarget>
|
|
||||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
|
||||||
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM64'">
|
|
||||||
<OutputPath>bin\ARM64\Release\</OutputPath>
|
|
||||||
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<NoWarn>;2008</NoWarn>
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<PlatformTarget>ARM64</PlatformTarget>
|
|
||||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
|
||||||
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
|
||||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
|
||||||
<NoWarn>;2008</NoWarn>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
|
||||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
|
||||||
<OutputPath>bin\x64\Release\</OutputPath>
|
|
||||||
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<NoWarn>;2008</NoWarn>
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
|
||||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
|
||||||
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="App.xaml.cs">
|
|
||||||
<DependentUpon>App.xaml</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
|
||||||
<Compile Include="Shell.xaml.cs">
|
|
||||||
<DependentUpon>Shell.xaml</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<AppxManifest Include="Package.appxmanifest">
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</AppxManifest>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Content Include="Assets\Icon-Light.ico" />
|
|
||||||
<Content Include="Assets\Icon.ico" />
|
|
||||||
<Content Include="Properties\Default.rd.xml" />
|
|
||||||
<Content Include="Assets\LockScreenLogo.scale-200.png" />
|
|
||||||
<Content Include="Assets\SplashScreen.scale-200.png" />
|
|
||||||
<Content Include="Assets\Square150x150Logo.scale-200.png" />
|
|
||||||
<Content Include="Assets\Square44x44Logo.scale-200.png" />
|
|
||||||
<Content Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
|
|
||||||
<Content Include="Assets\StoreLogo.png" />
|
|
||||||
<Content Include="Assets\Wide310x150Logo.scale-200.png" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ApplicationDefinition Include="App.xaml">
|
|
||||||
<Generator>MSBuild:Compile</Generator>
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</ApplicationDefinition>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform">
|
|
||||||
<Version>6.2.11</Version>
|
|
||||||
</PackageReference>
|
|
||||||
<PackageReference Include="Microsoft.Toolkit.Win32.UI.XamlApplication">
|
|
||||||
<Version>6.1.2</Version>
|
|
||||||
</PackageReference>
|
|
||||||
<PackageReference Include="Microsoft.UI.Xaml">
|
|
||||||
<Version>2.6.0-prerelease.210113001</Version>
|
|
||||||
</PackageReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Page Include="Shell.xaml">
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
<Generator>MSBuild:Compile</Generator>
|
|
||||||
</Page>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\..\src\NotificationFlyout.Uwp.UI.Controls\NotificationFlyout.Uwp.UI.Controls.csproj">
|
|
||||||
<Project>{95f851e4-87a5-4bb7-953e-c0fe3b306f0e}</Project>
|
|
||||||
<Name>NotificationFlyout.Uwp.UI.Controls</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\..\..\src\NotificationFlyout.Uwp.UI\NotificationFlyout.Uwp.UI.csproj">
|
|
||||||
<Project>{ade190a2-f751-4836-b8f4-bf56694a4b3f}</Project>
|
|
||||||
<Name>NotificationFlyout.Uwp.UI</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' ">
|
|
||||||
<VisualStudioVersion>14.0</VisualStudioVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
|
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
|
||||||
Other similar extension points exist, see Microsoft.Common.targets.
|
|
||||||
<Target Name="BeforeBuild">
|
|
||||||
</Target>
|
|
||||||
<Target Name="AfterBuild">
|
|
||||||
</Target>
|
|
||||||
-->
|
|
||||||
<PropertyGroup>
|
|
||||||
<EnableTypeInfoReflection>false</EnableTypeInfoReflection>
|
|
||||||
<EnableXBindDiagnostics>false</EnableXBindDiagnostics>
|
|
||||||
</PropertyGroup>
|
|
||||||
</Project>
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<Package
|
|
||||||
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
|
|
||||||
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
|
|
||||||
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
|
||||||
IgnorableNamespaces="uap mp">
|
|
||||||
|
|
||||||
<Identity
|
|
||||||
Name="463d679e-a359-426e-9d28-ecf319559f65"
|
|
||||||
Publisher="CN=dan"
|
|
||||||
Version="1.0.0.0" />
|
|
||||||
|
|
||||||
<mp:PhoneIdentity PhoneProductId="463d679e-a359-426e-9d28-ecf319559f65" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
|
|
||||||
|
|
||||||
<Properties>
|
|
||||||
<DisplayName>NotificationFlyoutSample</DisplayName>
|
|
||||||
<PublisherDisplayName>dan</PublisherDisplayName>
|
|
||||||
<Logo>Assets\StoreLogo.png</Logo>
|
|
||||||
</Properties>
|
|
||||||
|
|
||||||
<Dependencies>
|
|
||||||
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
|
|
||||||
</Dependencies>
|
|
||||||
|
|
||||||
<Resources>
|
|
||||||
<Resource Language="x-generate"/>
|
|
||||||
</Resources>
|
|
||||||
|
|
||||||
<Applications>
|
|
||||||
<Application Id="App"
|
|
||||||
Executable="$targetnametoken$.exe"
|
|
||||||
EntryPoint="NotificationFlyoutSample.App">
|
|
||||||
<uap:VisualElements
|
|
||||||
DisplayName="NotificationFlyoutSample"
|
|
||||||
Square150x150Logo="Assets\Square150x150Logo.png"
|
|
||||||
Square44x44Logo="Assets\Square44x44Logo.png"
|
|
||||||
Description="NotificationFlyoutSample"
|
|
||||||
BackgroundColor="transparent">
|
|
||||||
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>
|
|
||||||
<uap:SplashScreen Image="Assets\SplashScreen.png" />
|
|
||||||
</uap:VisualElements>
|
|
||||||
</Application>
|
|
||||||
</Applications>
|
|
||||||
|
|
||||||
<Capabilities>
|
|
||||||
<Capability Name="internetClient" />
|
|
||||||
</Capabilities>
|
|
||||||
</Package>
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
using System.Reflection;
|
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
|
|
||||||
// General Information about an assembly is controlled through the following
|
|
||||||
// set of attributes. Change these attribute values to modify the information
|
|
||||||
// associated with an assembly.
|
|
||||||
[assembly: AssemblyTitle("NotificationFlyoutSample")]
|
|
||||||
[assembly: AssemblyDescription("")]
|
|
||||||
[assembly: AssemblyConfiguration("")]
|
|
||||||
[assembly: AssemblyCompany("")]
|
|
||||||
[assembly: AssemblyProduct("NotificationFlyoutSample")]
|
|
||||||
[assembly: AssemblyCopyright("Copyright © 2021")]
|
|
||||||
[assembly: AssemblyTrademark("")]
|
|
||||||
[assembly: AssemblyCulture("")]
|
|
||||||
|
|
||||||
// Version information for an assembly consists of the following four values:
|
|
||||||
//
|
|
||||||
// Major Version
|
|
||||||
// Minor Version
|
|
||||||
// Build Number
|
|
||||||
// Revision
|
|
||||||
//
|
|
||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
|
||||||
// by using the '*' as shown below:
|
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
|
||||||
[assembly: AssemblyVersion("1.0.0.0")]
|
|
||||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
|
||||||
[assembly: ComVisible(false)]
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
<!--
|
|
||||||
This file contains Runtime Directives used by .NET Native. The defaults here are suitable for most
|
|
||||||
developers. However, you can modify these parameters to modify the behavior of the .NET Native
|
|
||||||
optimizer.
|
|
||||||
|
|
||||||
Runtime Directives are documented at https://go.microsoft.com/fwlink/?LinkID=391919
|
|
||||||
|
|
||||||
To fully enable reflection for App1.MyClass and all of its public/private members
|
|
||||||
<Type Name="App1.MyClass" Dynamic="Required All"/>
|
|
||||||
|
|
||||||
To enable dynamic creation of the specific instantiation of AppClass<T> over System.Int32
|
|
||||||
<TypeInstantiation Name="App1.AppClass" Arguments="System.Int32" Activate="Required Public" />
|
|
||||||
|
|
||||||
Using the Namespace directive to apply reflection policy to all the types in a particular namespace
|
|
||||||
<Namespace Name="DataClasses.ViewModels" Serialize="All" />
|
|
||||||
-->
|
|
||||||
|
|
||||||
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
|
|
||||||
<Application>
|
|
||||||
<!--
|
|
||||||
An Assembly element with Name="*Application*" applies to all assemblies in
|
|
||||||
the application package. The asterisks are not wildcards.
|
|
||||||
-->
|
|
||||||
<Assembly Name="*Application*" Dynamic="Required All" />
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Add your application specific runtime directives here. -->
|
|
||||||
|
|
||||||
|
|
||||||
</Application>
|
|
||||||
</Directives>
|
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
<controls:NotificationFlyout
|
|
||||||
x:Class="NotificationFlyoutSample.Shell"
|
|
||||||
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:muxc="using:Microsoft.UI.Xaml.Controls"
|
|
||||||
IconSource="/Assets/Icon.ico"
|
|
||||||
LightIconSource="/Assets/Icon-Light.ico">
|
|
||||||
<controls:NotificationFlyout.ContextMenuItems>
|
|
||||||
<MenuFlyoutItem Click="MenuFlyoutItem_Click" Text="Click me" />
|
|
||||||
<MenuFlyoutItem Click="MenuFlyoutItem_Click_1" Text="Exit" />
|
|
||||||
</controls:NotificationFlyout.ContextMenuItems>
|
|
||||||
<StackPanel Margin="24">
|
|
||||||
<ComboBox
|
|
||||||
x:Name="Theme"
|
|
||||||
Margin="0,0,0,8"
|
|
||||||
SelectionChanged="Theme_SelectionChanged">
|
|
||||||
<ComboBoxItem Content="Default" />
|
|
||||||
<ComboBoxItem Content="Dark" />
|
|
||||||
<ComboBoxItem Content="Light" />
|
|
||||||
</ComboBox>
|
|
||||||
<muxc:MenuBar>
|
|
||||||
<muxc:MenuBarItem Title="File">
|
|
||||||
<MenuFlyoutItem Text="New" />
|
|
||||||
<MenuFlyoutItem Text="Open..." />
|
|
||||||
<MenuFlyoutItem Text="Save" />
|
|
||||||
<MenuFlyoutItem Text="Exit" />
|
|
||||||
</muxc:MenuBarItem>
|
|
||||||
|
|
||||||
<muxc:MenuBarItem Title="Edit">
|
|
||||||
<MenuFlyoutItem Text="Undo" />
|
|
||||||
<MenuFlyoutItem Text="Cut" />
|
|
||||||
<MenuFlyoutItem Text="Copy" />
|
|
||||||
<MenuFlyoutItem Text="Paste" />
|
|
||||||
</muxc:MenuBarItem>
|
|
||||||
|
|
||||||
<muxc:MenuBarItem Title="Help">
|
|
||||||
<MenuFlyoutItem Text="About" />
|
|
||||||
</muxc:MenuBarItem>
|
|
||||||
</muxc:MenuBar>
|
|
||||||
<muxc:ProgressRing Margin="0,0,0,8" IsActive="True" />
|
|
||||||
<muxc:ProgressBar
|
|
||||||
Width="130"
|
|
||||||
Margin="0,0,0,8"
|
|
||||||
IsIndeterminate="True"
|
|
||||||
ShowError="False"
|
|
||||||
ShowPaused="False" />
|
|
||||||
<Button Margin="0,0,0,8" Content="Button" />
|
|
||||||
<Slider Margin="0,0,0,8" />
|
|
||||||
<TextBox Margin="0,0,0,8" />
|
|
||||||
<CalendarView Margin="0,0,0,8" />
|
|
||||||
<TimePicker Margin="0,0,0,8" />
|
|
||||||
<DatePicker />
|
|
||||||
<muxc:NumberBox
|
|
||||||
x:Name="NumberBoxSpinButtonPlacementExample"
|
|
||||||
Header="Enter an integer:"
|
|
||||||
LargeChange="100"
|
|
||||||
SmallChange="10"
|
|
||||||
SpinButtonPlacementMode="Compact"
|
|
||||||
Value="1" />
|
|
||||||
<muxc:RadioButtons Header="Options:">
|
|
||||||
<RadioButton Content="Option 1" />
|
|
||||||
<RadioButton Content="Option 2" />
|
|
||||||
<RadioButton Content="Option 3" />
|
|
||||||
</muxc:RadioButtons>
|
|
||||||
<StackPanel>
|
|
||||||
<CheckBox
|
|
||||||
x:Name="OptionsAllCheckBox"
|
|
||||||
Content="Select all"
|
|
||||||
IsThreeState="True" />
|
|
||||||
<CheckBox
|
|
||||||
x:Name="Option1CheckBox"
|
|
||||||
Margin="24,0,0,0"
|
|
||||||
Content="Option 1" />
|
|
||||||
<CheckBox
|
|
||||||
x:Name="Option2CheckBox"
|
|
||||||
Margin="24,0,0,0"
|
|
||||||
Content="Option 2"
|
|
||||||
IsChecked="True" />
|
|
||||||
<CheckBox
|
|
||||||
x:Name="Option3CheckBox"
|
|
||||||
Margin="24,0,0,0"
|
|
||||||
Content="Option 3" />
|
|
||||||
</StackPanel>
|
|
||||||
<muxc:RatingControl AutomationProperties.Name="RatingControl with placeholder" PlaceholderValue="0" />
|
|
||||||
</StackPanel>
|
|
||||||
</controls:NotificationFlyout>
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
using Windows.UI.Popups;
|
|
||||||
using Windows.UI.Xaml;
|
|
||||||
|
|
||||||
namespace NotificationFlyoutSample
|
|
||||||
{
|
|
||||||
public sealed partial class Shell
|
|
||||||
{
|
|
||||||
public Shell()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Theme_SelectionChanged(object sender, Windows.UI.Xaml.Controls.SelectionChangedEventArgs e)
|
|
||||||
{
|
|
||||||
switch (Theme.SelectedIndex)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
RequestedTheme = Windows.UI.Xaml.ElementTheme.Default;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
RequestedTheme = Windows.UI.Xaml.ElementTheme.Dark;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
RequestedTheme = Windows.UI.Xaml.ElementTheme.Light;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void MenuFlyoutItem_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
MessageDialog d = new MessageDialog("Hello from context menu!");
|
|
||||||
d.ShowAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void MenuFlyoutItem_Click_1(object sender, RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
var app = GetApplication();
|
|
||||||
app.Exit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
// General Information about an assembly is controlled through the following
|
// General Information about an assembly is controlled through the following
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
Runtime Directives are documented at https://go.microsoft.com/fwlink/?LinkID=391919
|
Runtime Directives are documented at https://go.microsoft.com/fwlink/?LinkID=391919
|
||||||
|
|
||||||
To fully enable reflection for App1.MyClass and all of its public/private members
|
To fully enable reflection for App1.MyClass and all of its public/private members
|
||||||
<Type Name="App1.MyClass" Dynamic="Required All"/>
|
<Type Name="App1.MyClass" Dynamic="Required All" />
|
||||||
|
|
||||||
To enable dynamic creation of the specific instantiation of AppClass<T> over System.Int32
|
To enable dynamic creation of the specific instantiation of AppClass<T> over System.Int32
|
||||||
<TypeInstantiation Name="App1.AppClass" Arguments="System.Int32" Activate="Required Public" />
|
<TypeInstantiation Name="App1.AppClass" Arguments="System.Int32" Activate="Required Public" />
|
||||||
@@ -23,9 +23,6 @@
|
|||||||
-->
|
-->
|
||||||
<Assembly Name="*Application*" Dynamic="Required All" />
|
<Assembly Name="*Application*" Dynamic="Required All" />
|
||||||
|
|
||||||
|
|
||||||
<!-- Add your application specific runtime directives here. -->
|
<!-- Add your application specific runtime directives here. -->
|
||||||
|
|
||||||
|
|
||||||
</Application>
|
</Application>
|
||||||
</Directives>
|
</Directives>
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<controls:NotificationFlyout
|
||||||
|
x:Class="NotificationFlyoutSample.SampleFlyout"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:controls="using:TheXamlGuy.NotificationFlyout.Uwp.UI.Controls">
|
||||||
|
<Grid Width="400" Height="600">
|
||||||
|
<Button
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Content="Hello World!" />
|
||||||
|
</Grid>
|
||||||
|
</controls:NotificationFlyout>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
using Windows.UI.Xaml;
|
||||||
|
|
||||||
|
namespace NotificationFlyoutSample
|
||||||
|
{
|
||||||
|
public sealed partial class SampleFlyout
|
||||||
|
{
|
||||||
|
public SampleFlyout()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnCloseMenuFlyoutItemClick(object sender, RoutedEventArgs args)
|
||||||
|
{
|
||||||
|
var app = GetApplication();
|
||||||
|
app.Exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,86 +0,0 @@
|
|||||||
<controls:NotificationFlyout
|
|
||||||
x:Class="NotificationFlyoutSample.Shell"
|
|
||||||
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:muxc="using:Microsoft.UI.Xaml.Controls"
|
|
||||||
IconSource="/Assets/Icon.ico"
|
|
||||||
LightIconSource="/Assets/Icon-Light.ico">
|
|
||||||
<controls:NotificationFlyout.ContextMenuItems>
|
|
||||||
<MenuFlyoutItem Click="MenuFlyoutItem_Click" Text="Close" />
|
|
||||||
</controls:NotificationFlyout.ContextMenuItems>
|
|
||||||
<StackPanel Margin="24">
|
|
||||||
<ComboBox
|
|
||||||
x:Name="Theme"
|
|
||||||
Margin="0,0,0,8"
|
|
||||||
SelectionChanged="Theme_SelectionChanged">
|
|
||||||
<ComboBoxItem Content="Default" />
|
|
||||||
<ComboBoxItem Content="Dark" />
|
|
||||||
<ComboBoxItem Content="Light" />
|
|
||||||
</ComboBox>
|
|
||||||
<muxc:MenuBar>
|
|
||||||
<muxc:MenuBarItem Title="File">
|
|
||||||
<MenuFlyoutItem Text="New" />
|
|
||||||
<MenuFlyoutItem Text="Open..." />
|
|
||||||
<MenuFlyoutItem Text="Save" />
|
|
||||||
<MenuFlyoutItem Text="Exit" />
|
|
||||||
</muxc:MenuBarItem>
|
|
||||||
|
|
||||||
<muxc:MenuBarItem Title="Edit">
|
|
||||||
<MenuFlyoutItem Text="Undo" />
|
|
||||||
<MenuFlyoutItem Text="Cut" />
|
|
||||||
<MenuFlyoutItem Text="Copy" />
|
|
||||||
<MenuFlyoutItem Text="Paste" />
|
|
||||||
</muxc:MenuBarItem>
|
|
||||||
|
|
||||||
<muxc:MenuBarItem Title="Help">
|
|
||||||
<MenuFlyoutItem Text="About" />
|
|
||||||
</muxc:MenuBarItem>
|
|
||||||
</muxc:MenuBar>
|
|
||||||
<muxc:ProgressRing Margin="0,0,0,8" IsActive="True" />
|
|
||||||
<muxc:ProgressBar
|
|
||||||
Width="130"
|
|
||||||
Margin="0,0,0,8"
|
|
||||||
IsIndeterminate="True"
|
|
||||||
ShowError="False"
|
|
||||||
ShowPaused="False" />
|
|
||||||
<Button Margin="0,0,0,8" Content="Open window" Click="Button_Click" />
|
|
||||||
<Slider Margin="0,0,0,8" />
|
|
||||||
<TextBox Margin="0,0,0,8" />
|
|
||||||
<CalendarView Margin="0,0,0,8" />
|
|
||||||
<TimePicker Margin="0,0,0,8" />
|
|
||||||
<DatePicker />
|
|
||||||
<muxc:NumberBox
|
|
||||||
x:Name="NumberBoxSpinButtonPlacementExample"
|
|
||||||
Header="Enter an integer:"
|
|
||||||
LargeChange="100"
|
|
||||||
SmallChange="10"
|
|
||||||
SpinButtonPlacementMode="Compact"
|
|
||||||
Value="1" />
|
|
||||||
<muxc:RadioButtons Header="Options:">
|
|
||||||
<RadioButton Content="Option 1" />
|
|
||||||
<RadioButton Content="Option 2" />
|
|
||||||
<RadioButton Content="Option 3" />
|
|
||||||
</muxc:RadioButtons>
|
|
||||||
<StackPanel>
|
|
||||||
<CheckBox
|
|
||||||
x:Name="OptionsAllCheckBox"
|
|
||||||
Content="Select all"
|
|
||||||
IsThreeState="True" />
|
|
||||||
<CheckBox
|
|
||||||
x:Name="Option1CheckBox"
|
|
||||||
Margin="24,0,0,0"
|
|
||||||
Content="Option 1" />
|
|
||||||
<CheckBox
|
|
||||||
x:Name="Option2CheckBox"
|
|
||||||
Margin="24,0,0,0"
|
|
||||||
Content="Option 2"
|
|
||||||
IsChecked="True" />
|
|
||||||
<CheckBox
|
|
||||||
x:Name="Option3CheckBox"
|
|
||||||
Margin="24,0,0,0"
|
|
||||||
Content="Option 3" />
|
|
||||||
</StackPanel>
|
|
||||||
<muxc:RatingControl AutomationProperties.Name="RatingControl with placeholder" PlaceholderValue="0" />
|
|
||||||
</StackPanel>
|
|
||||||
</controls:NotificationFlyout>
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
namespace NotificationFlyoutSample
|
|
||||||
{
|
|
||||||
public sealed partial class Shell
|
|
||||||
{
|
|
||||||
public Shell()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Theme_SelectionChanged(object sender, Windows.UI.Xaml.Controls.SelectionChangedEventArgs e)
|
|
||||||
{
|
|
||||||
switch (Theme.SelectedIndex)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
RequestedTheme = Windows.UI.Xaml.ElementTheme.Default;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
RequestedTheme = Windows.UI.Xaml.ElementTheme.Dark;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
RequestedTheme = Windows.UI.Xaml.ElementTheme.Light;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void MenuFlyoutItem_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
var app = GetApplication();
|
|
||||||
app.Exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Button_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
var app = GetApplication();
|
|
||||||
app.OpenAsWindow<WindowContent>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
<UserControl
|
|
||||||
x:Class="NotificationFlyoutSample.WindowContent"
|
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:muxc="using:Microsoft.UI.Xaml.Controls">
|
|
||||||
<muxc:NavigationView x:Name="nvSample">
|
|
||||||
<muxc:NavigationView.MenuItems>
|
|
||||||
<muxc:NavigationViewItem
|
|
||||||
Content="Menu Item1"
|
|
||||||
Icon="Play"
|
|
||||||
Tag="SamplePage1" />
|
|
||||||
<muxc:NavigationViewItem
|
|
||||||
Content="Menu Item2"
|
|
||||||
Icon="Save"
|
|
||||||
Tag="SamplePage2" />
|
|
||||||
<muxc:NavigationViewItem
|
|
||||||
Content="Menu Item3"
|
|
||||||
Icon="Refresh"
|
|
||||||
Tag="SamplePage3" />
|
|
||||||
<muxc:NavigationViewItem
|
|
||||||
Content="Menu Item4"
|
|
||||||
Icon="Download"
|
|
||||||
Tag="SamplePage4" />
|
|
||||||
</muxc:NavigationView.MenuItems>
|
|
||||||
<Frame x:Name="contentFrame" />
|
|
||||||
</muxc:NavigationView>
|
|
||||||
</UserControl>
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Runtime.InteropServices.WindowsRuntime;
|
|
||||||
using Windows.Foundation;
|
|
||||||
using Windows.Foundation.Collections;
|
|
||||||
using Windows.UI.Xaml;
|
|
||||||
using Windows.UI.Xaml.Controls;
|
|
||||||
using Windows.UI.Xaml.Controls.Primitives;
|
|
||||||
using Windows.UI.Xaml.Data;
|
|
||||||
using Windows.UI.Xaml.Input;
|
|
||||||
using Windows.UI.Xaml.Media;
|
|
||||||
using Windows.UI.Xaml.Navigation;
|
|
||||||
|
|
||||||
// The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236
|
|
||||||
|
|
||||||
namespace NotificationFlyoutSample
|
|
||||||
{
|
|
||||||
public sealed partial class WindowContent : UserControl
|
|
||||||
{
|
|
||||||
public WindowContent()
|
|
||||||
{
|
|
||||||
this.InitializeComponent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using Windows.UI.Xaml.Controls;
|
|
||||||
using Windows.UI.Xaml.Controls.Primitives;
|
|
||||||
|
|
||||||
namespace NotificationFlyout.Uwp.UI.Controls
|
|
||||||
{
|
|
||||||
internal class ContextMenuFlyoutHost : Control
|
|
||||||
{
|
|
||||||
private MenuFlyout _flyout;
|
|
||||||
private Grid _root;
|
|
||||||
|
|
||||||
public ContextMenuFlyoutHost()
|
|
||||||
{
|
|
||||||
DefaultStyleKey = typeof(ContextMenuFlyoutHost);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void HideFlyout()
|
|
||||||
{
|
|
||||||
if (_flyout == null) return;
|
|
||||||
_flyout.Hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowFlyout()
|
|
||||||
{
|
|
||||||
if (_root == null) return;
|
|
||||||
if (_flyout == null) return;
|
|
||||||
|
|
||||||
_flyout.ShowAt(_root, new FlyoutShowOptions { Placement = FlyoutPlacementMode.BottomEdgeAlignedLeft, ShowMode = FlyoutShowMode.TransientWithDismissOnPointerMoveAway });
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void OnApplyTemplate()
|
|
||||||
{
|
|
||||||
_root = GetTemplateChild("Root") as Grid;
|
|
||||||
_flyout = GetTemplateChild("Flyout") as MenuFlyout;
|
|
||||||
}
|
|
||||||
|
|
||||||
internal void SetMenuItems(IList<MenuFlyoutItemBase> addedItems, IList<MenuFlyoutItemBase> removedItems = null)
|
|
||||||
{
|
|
||||||
if (_flyout == null) return;
|
|
||||||
|
|
||||||
if (removedItems != null)
|
|
||||||
{
|
|
||||||
foreach (var item in removedItems)
|
|
||||||
{
|
|
||||||
_flyout.Items.Remove(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var item in addedItems)
|
|
||||||
{
|
|
||||||
_flyout.Items.Add(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,150 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Collections.ObjectModel;
|
|
||||||
using System.Collections.Specialized;
|
|
||||||
using System.Linq;
|
|
||||||
using Windows.UI.Xaml;
|
|
||||||
using Windows.UI.Xaml.Controls;
|
|
||||||
using Windows.UI.Xaml.Markup;
|
|
||||||
using Windows.UI.Xaml.Media;
|
|
||||||
|
|
||||||
namespace NotificationFlyout.Uwp.UI.Controls
|
|
||||||
{
|
|
||||||
[ContentProperty(Name = "Content")]
|
|
||||||
public class NotificationFlyout : DependencyObject
|
|
||||||
{
|
|
||||||
public static readonly DependencyProperty IconSourceProperty =
|
|
||||||
DependencyProperty.Register(nameof(IconSource),
|
|
||||||
typeof(ImageSource), typeof(NotificationFlyout),
|
|
||||||
new PropertyMetadata(null, OnIconPropertyChanged));
|
|
||||||
|
|
||||||
public static readonly DependencyProperty LightIconSourceProperty =
|
|
||||||
DependencyProperty.Register(nameof(LightIconSource),
|
|
||||||
typeof(ImageSource), typeof(NotificationFlyout),
|
|
||||||
new PropertyMetadata(null, OnIconPropertyChanged));
|
|
||||||
|
|
||||||
public static readonly DependencyProperty RequestedThemeProperty =
|
|
||||||
DependencyProperty.Register(nameof(RequestedTheme),
|
|
||||||
typeof(ElementTheme), typeof(NotificationFlyout),
|
|
||||||
new PropertyMetadata(ElementTheme.Default, OnRequestedThemePropertyChanged));
|
|
||||||
|
|
||||||
public static INotificationFlyoutApplication _applicationInstance;
|
|
||||||
|
|
||||||
public static DependencyProperty ContentProperty =
|
|
||||||
DependencyProperty.Register(nameof(Content),
|
|
||||||
typeof(UIElement), typeof(NotificationFlyout),
|
|
||||||
new PropertyMetadata(null, OnContentPropertyChanged));
|
|
||||||
|
|
||||||
public static DependencyProperty ContextMenuItemsProperty =
|
|
||||||
DependencyProperty.Register(nameof(ContextMenuItems),
|
|
||||||
typeof(IList<MenuFlyoutItemBase>), typeof(NotificationFlyout),
|
|
||||||
new PropertyMetadata(null));
|
|
||||||
public NotificationFlyout()
|
|
||||||
{
|
|
||||||
ContextMenuItems = new ObservableCollection<MenuFlyoutItemBase>();
|
|
||||||
(ContextMenuItems as INotifyCollectionChanged).CollectionChanged += OnContextMenuItemsChanged;
|
|
||||||
}
|
|
||||||
|
|
||||||
internal event EventHandler ContentChanged;
|
|
||||||
|
|
||||||
internal event EventHandler IconSourceChanged;
|
|
||||||
|
|
||||||
internal event EventHandler<NotificationFlyoutMenuItemsChangedEventArgs> MenuItemsChanged;
|
|
||||||
|
|
||||||
internal event EventHandler RequestedThemeChanged;
|
|
||||||
|
|
||||||
public UIElement Content
|
|
||||||
{
|
|
||||||
get => (UIElement)GetValue(ContentProperty);
|
|
||||||
set => SetValue(ContentProperty, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public IList<MenuFlyoutItemBase> ContextMenuItems
|
|
||||||
{
|
|
||||||
get => (IList<MenuFlyoutItemBase>)GetValue(ContextMenuItemsProperty);
|
|
||||||
set => SetValue(ContextMenuItemsProperty, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ImageSource IconSource
|
|
||||||
{
|
|
||||||
get => (ImageSource)GetValue(IconSourceProperty);
|
|
||||||
set => SetValue(IconSourceProperty, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ImageSource LightIconSource
|
|
||||||
{
|
|
||||||
get => (ImageSource)GetValue(LightIconSourceProperty);
|
|
||||||
set => SetValue(LightIconSourceProperty, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ElementTheme RequestedTheme
|
|
||||||
{
|
|
||||||
get => (ElementTheme)GetValue(RequestedThemeProperty);
|
|
||||||
set => SetValue(RequestedThemeProperty, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static INotificationFlyoutApplication GetApplication()
|
|
||||||
{
|
|
||||||
return _applicationInstance;
|
|
||||||
}
|
|
||||||
|
|
||||||
internal static void SetApplication(INotificationFlyoutApplication application)
|
|
||||||
{
|
|
||||||
_applicationInstance = application;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void OnContentPropertyChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs args)
|
|
||||||
{
|
|
||||||
var sender = dependencyObject as NotificationFlyout;
|
|
||||||
sender?.OnContentPropertyChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void OnIconPropertyChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs args)
|
|
||||||
{
|
|
||||||
var sender = dependencyObject as NotificationFlyout;
|
|
||||||
sender?.OnIconPropertyChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void OnRequestedThemePropertyChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs args)
|
|
||||||
{
|
|
||||||
var sender = dependencyObject as NotificationFlyout;
|
|
||||||
sender?.OnRequestedThemePropertyChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnContentPropertyChanged()
|
|
||||||
{
|
|
||||||
ContentChanged?.Invoke(this, EventArgs.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnContextMenuItemsChanged(object sender, NotifyCollectionChangedEventArgs args)
|
|
||||||
{
|
|
||||||
var addedItems = args.NewItems.Cast<MenuFlyoutItemBase>().ToList();
|
|
||||||
var removedItems = args.NewItems.Cast<MenuFlyoutItemBase>().ToList();
|
|
||||||
|
|
||||||
MenuItemsChanged?.Invoke(this, new NotificationFlyoutMenuItemsChangedEventArgs(addedItems, removedItems));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnIconPropertyChanged()
|
|
||||||
{
|
|
||||||
IconSourceChanged?.Invoke(this, EventArgs.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnRequestedThemePropertyChanged()
|
|
||||||
{
|
|
||||||
RequestedThemeChanged?.Invoke(this, EventArgs.Empty);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal class NotificationFlyoutMenuItemsChangedEventArgs : EventArgs
|
|
||||||
{
|
|
||||||
public NotificationFlyoutMenuItemsChangedEventArgs(IList<MenuFlyoutItemBase> addedItems, IList<MenuFlyoutItemBase> removedItems)
|
|
||||||
{
|
|
||||||
AddedItems = addedItems;
|
|
||||||
RemovedItems = removedItems;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IList<MenuFlyoutItemBase> AddedItems { get; private set; }
|
|
||||||
|
|
||||||
public IList<MenuFlyoutItemBase> RemovedItems { get; private set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
using System.Numerics;
|
|
||||||
using Windows.UI.Xaml;
|
|
||||||
using Windows.UI.Xaml.Controls;
|
|
||||||
using Windows.UI.Xaml.Controls.Primitives;
|
|
||||||
using Windows.UI.Xaml.Media;
|
|
||||||
|
|
||||||
namespace NotificationFlyout.Uwp.UI.Controls
|
|
||||||
{
|
|
||||||
internal class NotificationFlyoutHost : Control
|
|
||||||
{
|
|
||||||
public static readonly DependencyProperty ContentProperty =
|
|
||||||
DependencyProperty.Register(nameof(Content),
|
|
||||||
typeof(UIElement), typeof(NotificationFlyoutHost),
|
|
||||||
new PropertyMetadata(null));
|
|
||||||
|
|
||||||
private bool _isLoaded;
|
|
||||||
private string _placement;
|
|
||||||
private Grid _root;
|
|
||||||
|
|
||||||
public NotificationFlyoutHost()
|
|
||||||
{
|
|
||||||
DefaultStyleKey = typeof(NotificationFlyoutHost);
|
|
||||||
}
|
|
||||||
|
|
||||||
public UIElement Content
|
|
||||||
{
|
|
||||||
get => (UIElement)GetValue(ContentProperty);
|
|
||||||
set => SetValue(ContentProperty, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void HideFlyout()
|
|
||||||
{
|
|
||||||
if (_root == null) return;
|
|
||||||
FlyoutBase flyout = FlyoutBase.GetAttachedFlyout(_root);
|
|
||||||
flyout.Hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetFlyoutPlacement(string placement)
|
|
||||||
{
|
|
||||||
if (!_isLoaded)
|
|
||||||
{
|
|
||||||
_placement = placement;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(placement)) return;
|
|
||||||
VisualStateManager.GoToState(this, placement, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowFlyout(FlyoutPlacementMode placementMode)
|
|
||||||
{
|
|
||||||
if (_root == null) return;
|
|
||||||
var flyout = FlyoutBase.GetAttachedFlyout(_root);
|
|
||||||
flyout.ShowAt(_root, new FlyoutShowOptions
|
|
||||||
{
|
|
||||||
Placement = placementMode,
|
|
||||||
ShowMode = FlyoutShowMode.Standard,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void OnApplyTemplate()
|
|
||||||
{
|
|
||||||
_root = GetTemplateChild("Root") as Grid;
|
|
||||||
if (GetTemplateChild("ContentRoot") is Grid contentRoot)
|
|
||||||
{
|
|
||||||
contentRoot.Shadow = new ThemeShadow();
|
|
||||||
|
|
||||||
var currentTranslation = contentRoot.Translation;
|
|
||||||
var translation = new Vector3(currentTranslation.X, currentTranslation.Y, 16.0f);
|
|
||||||
contentRoot.Translation = translation;
|
|
||||||
}
|
|
||||||
|
|
||||||
_isLoaded = true;
|
|
||||||
SetFlyoutPlacement(_placement);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
using Windows.UI.Xaml.Controls;
|
|
||||||
|
|
||||||
namespace NotificationFlyout.Uwp.UI.Controls
|
|
||||||
{
|
|
||||||
public class NotificationFlyoutPresenter : ContentControl
|
|
||||||
{
|
|
||||||
public NotificationFlyoutPresenter()
|
|
||||||
{
|
|
||||||
DefaultStyleKey = typeof(NotificationFlyoutPresenter);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
|
||||||
<ResourceDictionary.MergedDictionaries>
|
|
||||||
<ResourceDictionary Source="ms-appx:///NotificationFlyout.Uwp.UI.Controls/NotificationFlyout/NotificationFlyoutHost.xaml" />
|
|
||||||
<ResourceDictionary Source="ms-appx:///NotificationFlyout.Uwp.UI.Controls/NotificationFlyout/NotificationFlyoutPresenter.xaml" />
|
|
||||||
<ResourceDictionary Source="ms-appx:///NotificationFlyout.Uwp.UI.Controls/NotificationFlyout/ContextMenuFlyoutHost.xaml" />
|
|
||||||
</ResourceDictionary.MergedDictionaries>
|
|
||||||
</ResourceDictionary>
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
GetSystemMetricsForDpi
|
|
||||||
GetCurrentPackageFullName
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
<Project Sdk="MSBuild.Sdk.Extras">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFrameworks>uap10.0.19041</TargetFrameworks>
|
|
||||||
<Platforms>AnyCPU;x64</Platforms>
|
|
||||||
<EnableTypeInfoReflection>false</EnableTypeInfoReflection>
|
|
||||||
<EnableXBindDiagnostics>false</EnableXBindDiagnostics>
|
|
||||||
<LangVersion>9.0</LangVersion>
|
|
||||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
|
||||||
<Company>TheXamlGuy</Company>
|
|
||||||
<Authors>TheXamlGuy</Authors>
|
|
||||||
<Product>NotificationFlyout</Product>
|
|
||||||
<Version>1.0.0</Version>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Remove="NotificationFlyout\**" />
|
|
||||||
<EmbeddedResource Remove="NotificationFlyout\**" />
|
|
||||||
<None Remove="NotificationFlyout\**" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<None Remove="NativeMethods.txt" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<AdditionalFiles Include="NativeMethods.txt" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.1.319-beta">
|
|
||||||
<PrivateAssets>all</PrivateAssets>
|
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
||||||
</PackageReference>
|
|
||||||
<PackageReference Include="System.Drawing.Common" Version="5.0.0" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
<Project Sdk="MSBuild.Sdk.Extras">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
|
||||||
<UseWPF>true</UseWPF>
|
|
||||||
<AssetTargetFallback>uap10.0.19041</AssetTargetFallback>
|
|
||||||
<Platforms>AnyCPU;x64</Platforms>
|
|
||||||
<MSBuildWarningsAsMessages>NU1702</MSBuildWarningsAsMessages>
|
|
||||||
<Company>TheXamlGuy</Company>
|
|
||||||
<Authors>TheXamlGuy</Authors>
|
|
||||||
<Product>NotificationFlyout</Product>
|
|
||||||
<Version>1.0.0</Version>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Microsoft.Toolkit.Wpf.UI.XamlHost" Version="6.1.2" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\NotificationFlyout.Uwp.UI.Controls\NotificationFlyout.Uwp.UI.Controls.csproj" />
|
|
||||||
<ProjectReference Include="..\NotificationFlyout.Uwp.UI\NotificationFlyout.Uwp.UI.csproj" />
|
|
||||||
<ProjectReference Include="..\NotificationFlyout.Wpf.UI\NotificationFlyout.Wpf.UI.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Update="Microsoft.VCRTForwarders.140" Version="1.0.7" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
@@ -1,78 +0,0 @@
|
|||||||
using NotificationFlyout.Uwp.UI.Controls;
|
|
||||||
using NotificationFlyout.Wpf.UI.Extensions;
|
|
||||||
using NotificationFlyout.Wpf.UI.Helpers;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using Windows.UI.Xaml.Controls;
|
|
||||||
|
|
||||||
namespace NotificationFlyout.Wpf.UI.Controls
|
|
||||||
{
|
|
||||||
internal class ContextMenuXamlHost : TransparentXamlHost<ContextMenuFlyoutHost>
|
|
||||||
{
|
|
||||||
private Uwp.UI.Controls.NotificationFlyout _flyout;
|
|
||||||
|
|
||||||
public ContextMenuXamlHost()
|
|
||||||
{
|
|
||||||
Topmost = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetFlyout(Uwp.UI.Controls.NotificationFlyout flyout)
|
|
||||||
{
|
|
||||||
if (_flyout != null)
|
|
||||||
{
|
|
||||||
_flyout.MenuItemsChanged -= OnContextMenuItemsChanged;
|
|
||||||
}
|
|
||||||
|
|
||||||
_flyout = flyout;
|
|
||||||
UpdateMenuItems();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowContextMenuFlyout()
|
|
||||||
{
|
|
||||||
var position = CursorHelper.GetPhysicalCursorPos();
|
|
||||||
this.SetWindowPosition(position.y, position.x, WindowSize, WindowSize);
|
|
||||||
|
|
||||||
var flyoutHost = GetHostContent();
|
|
||||||
if (flyoutHost != null)
|
|
||||||
{
|
|
||||||
flyoutHost.ShowFlyout();
|
|
||||||
}
|
|
||||||
|
|
||||||
Activate();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void OnContentLoaded()
|
|
||||||
{
|
|
||||||
UpdateMenuItems();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void OnDeactivated(EventArgs args)
|
|
||||||
{
|
|
||||||
var flyoutHost = GetHostContent();
|
|
||||||
if (flyoutHost != null)
|
|
||||||
{
|
|
||||||
flyoutHost.HideFlyout();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnContextMenuItemsChanged(object sender, NotificationFlyoutMenuItemsChangedEventArgs args)
|
|
||||||
{
|
|
||||||
UpdateMenuItems(args.AddedItems, args.RemovedItems);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void UpdateMenuItems()
|
|
||||||
{
|
|
||||||
if (_flyout == null) return;
|
|
||||||
UpdateMenuItems(_flyout.ContextMenuItems);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void UpdateMenuItems(IList<MenuFlyoutItemBase> addedItems, IList<MenuFlyoutItemBase> removedItems = default)
|
|
||||||
{
|
|
||||||
var flyoutHost = GetHostContent();
|
|
||||||
if (flyoutHost != null)
|
|
||||||
{
|
|
||||||
flyoutHost.SetMenuItems(addedItems, removedItems);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
using NotificationFlyout.Wpf.UI.Helpers;
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace NotificationFlyout.Wpf.UI.Extensions
|
|
||||||
{
|
|
||||||
public static class OperatingSystemExtensions
|
|
||||||
{
|
|
||||||
public static bool IsGreaterThan(this OperatingSystem operatingSystem, OperatingSystemVersion version)
|
|
||||||
{
|
|
||||||
return operatingSystem.Version.Build > (int)version;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,200 +0,0 @@
|
|||||||
using NotificationFlyout.Wpf.UI.Extensions;
|
|
||||||
using System;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
using System.Windows;
|
|
||||||
using System.Windows.Input;
|
|
||||||
using System.Windows.Interop;
|
|
||||||
|
|
||||||
namespace NotificationFlyout.Wpf.UI.Helpers
|
|
||||||
{
|
|
||||||
public class NotificationIconHelper : IDisposable
|
|
||||||
{
|
|
||||||
private const int CallbackMessage = 0x400;
|
|
||||||
private const uint IconVersion = 0x4;
|
|
||||||
|
|
||||||
private readonly object _lock = new();
|
|
||||||
private readonly IntPtr _windowHandle;
|
|
||||||
private bool _isDisposed;
|
|
||||||
private NotifyIconData _notifyIconData;
|
|
||||||
|
|
||||||
private NotificationIconHelper(Window window)
|
|
||||||
{
|
|
||||||
_windowHandle = window.GetHandle();
|
|
||||||
|
|
||||||
HwndSource source = HwndSource.FromHwnd(_windowHandle);
|
|
||||||
source.AddHook(new HwndSourceHook(WndProc));
|
|
||||||
|
|
||||||
CreateNotificationIcon();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
~NotificationIconHelper()
|
|
||||||
{
|
|
||||||
Dispose(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public event EventHandler<NotificationIconInvokedEventArgs> IconInvoked;
|
|
||||||
|
|
||||||
private enum NotifyIconBalloonType
|
|
||||||
{
|
|
||||||
None = 0x00,
|
|
||||||
Info = 0x01,
|
|
||||||
Warning = 0x02,
|
|
||||||
Error = 0x03,
|
|
||||||
User = 0x04,
|
|
||||||
NoSound = 0x10,
|
|
||||||
LargeIcon = 0x20,
|
|
||||||
RespectQuietTime = 0x80
|
|
||||||
}
|
|
||||||
|
|
||||||
private enum NotifyIconCommand : uint
|
|
||||||
{
|
|
||||||
Add = 0x0,
|
|
||||||
Delete = 0x2,
|
|
||||||
Modify = 0x1,
|
|
||||||
SetVersion = 0x4
|
|
||||||
}
|
|
||||||
|
|
||||||
[Flags]
|
|
||||||
private enum NotifyIconDataMember : uint
|
|
||||||
{
|
|
||||||
Message = 0x01,
|
|
||||||
Icon = 0x02,
|
|
||||||
Tip = 0x04,
|
|
||||||
State = 0x08,
|
|
||||||
Info = 0x10,
|
|
||||||
Realtime = 0x40,
|
|
||||||
UseLegacyToolTips = 0x80
|
|
||||||
}
|
|
||||||
|
|
||||||
private enum NotifyIconState : uint
|
|
||||||
{
|
|
||||||
Visible = 0x00,
|
|
||||||
Hidden = 0x01
|
|
||||||
}
|
|
||||||
|
|
||||||
public static NotificationIconHelper Create(Window window)
|
|
||||||
{
|
|
||||||
return new NotificationIconHelper(window);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Dispose()
|
|
||||||
{
|
|
||||||
Dispose(true);
|
|
||||||
GC.SuppressFinalize(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetIcon(IntPtr iconHandle)
|
|
||||||
{
|
|
||||||
lock (_lock)
|
|
||||||
{
|
|
||||||
_notifyIconData.IconHandle = iconHandle;
|
|
||||||
WriteNotifyIconData(NotifyIconCommand.Modify, NotifyIconDataMember.Icon);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[DllImport("user32.dll", SetLastError = true)]
|
|
||||||
private static extern IntPtr DefWindowProcW(IntPtr handle, uint msg, IntPtr wParam, IntPtr lParam);
|
|
||||||
|
|
||||||
[DllImport("shell32.dll", SetLastError = true)]
|
|
||||||
private static extern int Shell_NotifyIcon(NotifyIconCommand notifyCommand, ref NotifyIconData notifyIconData);
|
|
||||||
|
|
||||||
private void CreateNotificationIcon()
|
|
||||||
{
|
|
||||||
lock (_lock)
|
|
||||||
{
|
|
||||||
_notifyIconData = new NotifyIconData();
|
|
||||||
|
|
||||||
_notifyIconData.cbSize = (uint)Marshal.SizeOf(_notifyIconData);
|
|
||||||
_notifyIconData.WindowHandle = _windowHandle;
|
|
||||||
_notifyIconData.TaskbarIconId = 0x0;
|
|
||||||
_notifyIconData.CallbackMessageId = CallbackMessage;
|
|
||||||
_notifyIconData.VersionOrTimeout = IconVersion;
|
|
||||||
|
|
||||||
_notifyIconData.IconHandle = IntPtr.Zero;
|
|
||||||
|
|
||||||
_notifyIconData.IconState = NotifyIconState.Hidden;
|
|
||||||
_notifyIconData.StateMask = NotifyIconState.Hidden;
|
|
||||||
|
|
||||||
WriteNotifyIconData(NotifyIconCommand.Add, NotifyIconDataMember.Message | NotifyIconDataMember.Icon | NotifyIconDataMember.Tip);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Dispose(bool disposing)
|
|
||||||
{
|
|
||||||
if (_isDisposed || !disposing) return;
|
|
||||||
|
|
||||||
lock (_lock)
|
|
||||||
{
|
|
||||||
_isDisposed = true;
|
|
||||||
RemoveNotificationIcon();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void InvokeIconInvoked(MouseButton mouseButton)
|
|
||||||
{
|
|
||||||
IconInvoked?.Invoke(this, new NotificationIconInvokedEventArgs { MouseButton = mouseButton });
|
|
||||||
}
|
|
||||||
|
|
||||||
private void RemoveNotificationIcon() => WriteNotifyIconData(NotifyIconCommand.Delete, NotifyIconDataMember.Message);
|
|
||||||
|
|
||||||
private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
|
|
||||||
{
|
|
||||||
if (msg == CallbackMessage)
|
|
||||||
{
|
|
||||||
switch ((uint)lParam)
|
|
||||||
{
|
|
||||||
case (uint)WndProcMessages.WM_LBUTTONUP:
|
|
||||||
InvokeIconInvoked(MouseButton.Left);
|
|
||||||
break;
|
|
||||||
case (uint)WndProcMessages.WM_MBUTTONUP:
|
|
||||||
InvokeIconInvoked(MouseButton.Middle);
|
|
||||||
break;
|
|
||||||
case (uint)WndProcMessages.WM_RBUTTONUP:
|
|
||||||
InvokeIconInvoked(MouseButton.Right);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return DefWindowProcW(hwnd, (uint)msg, wParam, (lParam));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void WriteNotifyIconData(NotifyIconCommand command, NotifyIconDataMember flags)
|
|
||||||
{
|
|
||||||
_notifyIconData.ValidMembers = flags;
|
|
||||||
lock (_lock)
|
|
||||||
{
|
|
||||||
Shell_NotifyIcon(command, ref _notifyIconData);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
|
|
||||||
private struct NotifyIconData
|
|
||||||
{
|
|
||||||
public uint cbSize;
|
|
||||||
public IntPtr WindowHandle;
|
|
||||||
public uint TaskbarIconId;
|
|
||||||
public NotifyIconDataMember ValidMembers;
|
|
||||||
public uint CallbackMessageId;
|
|
||||||
public IntPtr IconHandle;
|
|
||||||
|
|
||||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
|
|
||||||
public string ToolTipText;
|
|
||||||
|
|
||||||
public NotifyIconState IconState;
|
|
||||||
public NotifyIconState StateMask;
|
|
||||||
|
|
||||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
|
|
||||||
public string BalloonText;
|
|
||||||
|
|
||||||
public uint VersionOrTimeout;
|
|
||||||
|
|
||||||
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)]
|
|
||||||
public string BalloonTitle;
|
|
||||||
|
|
||||||
public NotifyIconBalloonType BalloonFlags;
|
|
||||||
public Guid TaskbarIconGuid;
|
|
||||||
public IntPtr CustomBalloonIconHandle;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Windows.Input;
|
|
||||||
|
|
||||||
namespace NotificationFlyout.Wpf.UI.Helpers
|
|
||||||
{
|
|
||||||
public class NotificationIconInvokedEventArgs : EventArgs
|
|
||||||
{
|
|
||||||
public MouseButton MouseButton { get; internal set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,118 +0,0 @@
|
|||||||
using Microsoft.Windows.Sdk;
|
|
||||||
using NotificationFlyout.Wpf.UI.Extensions;
|
|
||||||
using System;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
using System.Windows;
|
|
||||||
using System.Windows.Interop;
|
|
||||||
|
|
||||||
namespace NotificationFlyout.Wpf.UI.Helpers
|
|
||||||
{
|
|
||||||
public class TaskbarHelper
|
|
||||||
{
|
|
||||||
private const string ShellTrayHandleName = "Shell_TrayWnd";
|
|
||||||
private const int SPI_SETWORKAREA = 0x002F;
|
|
||||||
|
|
||||||
private readonly uint WM_TASKBARCREATED = PInvoke.RegisterWindowMessage("TaskbarCreated");
|
|
||||||
|
|
||||||
private TaskbarHelper(Window window)
|
|
||||||
{
|
|
||||||
var handle = window.GetHandle();
|
|
||||||
|
|
||||||
var source = HwndSource.FromHwnd(handle);
|
|
||||||
source.AddHook(new HwndSourceHook(WndProc));
|
|
||||||
}
|
|
||||||
|
|
||||||
public event EventHandler TaskbarChanged;
|
|
||||||
|
|
||||||
private enum AppBarEdge : uint
|
|
||||||
{
|
|
||||||
Left = 0,
|
|
||||||
Top = 1,
|
|
||||||
Right = 2,
|
|
||||||
Bottom = 3
|
|
||||||
}
|
|
||||||
|
|
||||||
private enum AppBarMessage : uint
|
|
||||||
{
|
|
||||||
New = 0x00000000,
|
|
||||||
Remove = 0x00000001,
|
|
||||||
QueryPos = 0x00000002,
|
|
||||||
SetPos = 0x00000003,
|
|
||||||
GetState = 0x00000004,
|
|
||||||
GetTaskbarPos = 0x00000005,
|
|
||||||
Activate = 0x00000006,
|
|
||||||
GetAutoHideBar = 0x00000007,
|
|
||||||
SetAutoHideBar = 0x00000008,
|
|
||||||
WindowPosChanged = 0x00000009,
|
|
||||||
SetState = 0x0000000A,
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TaskbarHelper Create(Window window)
|
|
||||||
{
|
|
||||||
return new TaskbarHelper(window);
|
|
||||||
}
|
|
||||||
|
|
||||||
public TaskbarState GetCurrentState()
|
|
||||||
{
|
|
||||||
var handle = GetSystemTrayHandle();
|
|
||||||
var state = new TaskbarState
|
|
||||||
{
|
|
||||||
Screen = Screen.FromHandle(handle)
|
|
||||||
};
|
|
||||||
|
|
||||||
var appBarData = GetAppBarData(handle);
|
|
||||||
GetAppBarPosition(ref appBarData);
|
|
||||||
|
|
||||||
state.Rect = appBarData.rect.ToRect();
|
|
||||||
state.Position = (TaskbarPosition)appBarData.uEdge;
|
|
||||||
|
|
||||||
return state;
|
|
||||||
}
|
|
||||||
|
|
||||||
[DllImport("user32.dll", SetLastError = true)]
|
|
||||||
private static extern IntPtr DefWindowProcW(IntPtr handle, uint msg, IntPtr wParam, IntPtr lParam);
|
|
||||||
|
|
||||||
private static IntPtr GetSystemTrayHandle()
|
|
||||||
{
|
|
||||||
return WindowHelper.GetHandle(ShellTrayHandleName);
|
|
||||||
}
|
|
||||||
|
|
||||||
[DllImport("shell32.dll", SetLastError = true)]
|
|
||||||
private static extern IntPtr SHAppBarMessage(AppBarMessage dwMessage, ref AppBarData pData);
|
|
||||||
|
|
||||||
private AppBarData GetAppBarData(IntPtr handle)
|
|
||||||
{
|
|
||||||
return new AppBarData
|
|
||||||
{
|
|
||||||
cbSize = (uint)Marshal.SizeOf(typeof(AppBarData)),
|
|
||||||
hWnd = handle
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private void GetAppBarPosition(ref AppBarData appBarData)
|
|
||||||
{
|
|
||||||
SHAppBarMessage(AppBarMessage.GetTaskbarPos, ref appBarData);
|
|
||||||
}
|
|
||||||
|
|
||||||
private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
|
|
||||||
{
|
|
||||||
if (msg == WM_TASKBARCREATED || msg == (int)WndProcMessages.WM_SETTINGCHANGE && (int)wParam == SPI_SETWORKAREA)
|
|
||||||
{
|
|
||||||
TaskbarChanged?.Invoke(this, EventArgs.Empty);
|
|
||||||
}
|
|
||||||
|
|
||||||
return DefWindowProcW(hwnd, (uint)msg, wParam, (lParam));
|
|
||||||
}
|
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
|
||||||
private struct AppBarData
|
|
||||||
{
|
|
||||||
public uint cbSize;
|
|
||||||
public IntPtr hWnd;
|
|
||||||
public uint uCallbackMessage;
|
|
||||||
public AppBarEdge uEdge;
|
|
||||||
public RECT rect;
|
|
||||||
public int lParam;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
using System;
|
|
||||||
using Microsoft.Windows.Sdk;
|
|
||||||
|
|
||||||
namespace NotificationFlyout.Wpf.UI.Helpers
|
|
||||||
{
|
|
||||||
public class WindowHelper
|
|
||||||
{
|
|
||||||
public static IntPtr GetHandle(string windowName)
|
|
||||||
{
|
|
||||||
return PInvoke.FindWindow(windowName, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static uint GetDpi(IntPtr handle)
|
|
||||||
{
|
|
||||||
return PInvoke.GetDpiForWindow((HWND)handle);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
using System.Runtime.CompilerServices;
|
|
||||||
|
|
||||||
[assembly: InternalsVisibleTo("NotificationFlyout.Wpf.UI.Controls")]
|
|
||||||
@@ -1,120 +0,0 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 16
|
|
||||||
VisualStudioVersion = 16.0.30914.41
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NotificationFlyout.Wpf.UI.Controls", "NotificationFlyout.Wpf.UI.Controls\NotificationFlyout.Wpf.UI.Controls.csproj", "{0A782234-DC9F-4C4A-8820-FC640B03D233}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NotificationFlyout.Uwp.UI.Controls", "NotificationFlyout.Uwp.UI.Controls\NotificationFlyout.Uwp.UI.Controls.csproj", "{9987B132-E42C-401A-9AD5-E62529FACA40}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NotificationFlyout.Wpf.UI", "NotificationFlyout.Wpf.UI\NotificationFlyout.Wpf.UI.csproj", "{29430194-7EDE-4C33-AF59-CE121F48F66E}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B7EEAC24-4F8A-4C73-90B3-DAC77D44CCF2}"
|
|
||||||
ProjectSection(SolutionItems) = preProject
|
|
||||||
global.json = global.json
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NotificationFlyout.Uwp.UI", "NotificationFlyout.Uwp.UI\NotificationFlyout.Uwp.UI.csproj", "{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Debug|ARM = Debug|ARM
|
|
||||||
Debug|ARM64 = Debug|ARM64
|
|
||||||
Debug|x64 = Debug|x64
|
|
||||||
Debug|x86 = Debug|x86
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
Release|ARM = Release|ARM
|
|
||||||
Release|ARM64 = Release|ARM64
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
Release|x86 = Release|x86
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Debug|Any CPU.ActiveCfg = Debug|x64
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Debug|Any CPU.Build.0 = Debug|x64
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Release|x64.Build.0 = Release|x64
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{0A782234-DC9F-4C4A-8820-FC640B03D233}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Debug|Any CPU.ActiveCfg = Debug|x64
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Debug|Any CPU.Build.0 = Debug|x64
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Debug|ARM.ActiveCfg = Debug|ARM
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Debug|ARM.Build.0 = Debug|ARM
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Debug|ARM64.Build.0 = Debug|ARM64
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Debug|x86.ActiveCfg = Debug|x86
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Debug|x86.Build.0 = Debug|x86
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Release|ARM.ActiveCfg = Release|ARM
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Release|ARM.Build.0 = Release|ARM
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Release|ARM64.ActiveCfg = Release|ARM64
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Release|ARM64.Build.0 = Release|ARM64
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Release|x64.Build.0 = Release|x64
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Release|x86.ActiveCfg = Release|x86
|
|
||||||
{9987B132-E42C-401A-9AD5-E62529FACA40}.Release|x86.Build.0 = Release|x86
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Debug|Any CPU.ActiveCfg = Debug|x64
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Debug|Any CPU.Build.0 = Debug|x64
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Release|x64.Build.0 = Release|x64
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{29430194-7EDE-4C33-AF59-CE121F48F66E}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Debug|Any CPU.ActiveCfg = Debug|x64
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Debug|Any CPU.Build.0 = Debug|x64
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Debug|ARM.Build.0 = Debug|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Debug|ARM64.Build.0 = Debug|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Debug|x64.ActiveCfg = Debug|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Debug|x86.ActiveCfg = Debug|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Debug|x86.Build.0 = Debug|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Release|ARM.ActiveCfg = Release|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Release|ARM.Build.0 = Release|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Release|ARM64.ActiveCfg = Release|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Release|ARM64.Build.0 = Release|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Release|x64.ActiveCfg = Release|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Release|x64.Build.0 = Release|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Release|x86.ActiveCfg = Release|Any CPU
|
|
||||||
{3FE0D7F7-1173-4989-BE6C-AD28FE0D4AC9}.Release|x86.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {EDFFB261-AD00-4C68-BF55-D5CED5BE0039}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
using Microsoft.Windows.Sdk;
|
using Microsoft.Windows.Sdk;
|
||||||
|
|
||||||
namespace NotificationFlyout.Uwp.UI.Extensions
|
namespace TheXamlGuy.NotificationFlyout.Common.Extensions
|
||||||
{
|
{
|
||||||
internal class ExecutionMode
|
internal class ExecutionMode
|
||||||
{
|
{
|
||||||
@@ -2,13 +2,11 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using Windows.UI.Xaml.Media;
|
using Windows.UI.Xaml.Media;
|
||||||
using Windows.UI.Xaml.Media.Imaging;
|
using Windows.UI.Xaml.Media.Imaging;
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace NotificationFlyout.Uwp.UI.Extensions
|
namespace TheXamlGuy.NotificationFlyout.Common.Extensions
|
||||||
{
|
{
|
||||||
public static class ImageSourceExtensions
|
public static class ImageSourceExtensions
|
||||||
{
|
{
|
||||||
@@ -20,17 +18,25 @@ namespace NotificationFlyout.Uwp.UI.Extensions
|
|||||||
var uri = $"{AppDomain.CurrentDomain.BaseDirectory}{bitmapImage.UriSource}".Replace("ms-appx:///", "").Replace("/", "\\");
|
var uri = $"{AppDomain.CurrentDomain.BaseDirectory}{bitmapImage.UriSource}".Replace("ms-appx:///", "").Replace("/", "\\");
|
||||||
|
|
||||||
using var stream = File.OpenRead(uri);
|
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)));
|
return ExtractIcon(dpi, stream);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var storageFile = await Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(bitmapImage.UriSource);
|
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)));
|
|
||||||
|
|
||||||
|
using var stream = await storageFile.OpenStreamForReadAsync();
|
||||||
|
return ExtractIcon(dpi, stream);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Icon ExtractIcon(uint dpi, Stream stream)
|
||||||
|
{
|
||||||
|
var bitmap = (Bitmap)Image.FromStream(stream);
|
||||||
|
var icon = Icon.FromHandle(bitmap.GetHicon());
|
||||||
|
|
||||||
|
return new Icon(icon, new Size(PInvoke.GetSystemMetricsForDpi((int)SystemMetricFlag.SM_CXICON, dpi), PInvoke.GetSystemMetricsForDpi((int)SystemMetricFlag.SM_CYICON, dpi)));
|
||||||
|
}
|
||||||
|
|
||||||
private enum SystemMetricFlag : int
|
private enum SystemMetricFlag : int
|
||||||
{
|
{
|
||||||
SM_CXICON = 11,
|
SM_CXICON = 11,
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Extensions
|
||||||
|
{
|
||||||
|
public static class OperatingSystemExtensions
|
||||||
|
{
|
||||||
|
public static bool IsGreaterThan(this OperatingSystem operatingSystem, OperatingSystemVersion version) => operatingSystem.Version.Build > (int)version;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
namespace NotificationFlyout.Wpf.UI.Helpers
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Extensions
|
||||||
{
|
{
|
||||||
public enum OperatingSystemVersion : int
|
public enum OperatingSystemVersion : int
|
||||||
{
|
{
|
||||||
@@ -1,14 +1,13 @@
|
|||||||
using Microsoft.Windows.Sdk;
|
using Microsoft.Windows.Sdk;
|
||||||
using System.Windows;
|
using Windows.Foundation;
|
||||||
|
|
||||||
namespace NotificationFlyout.Wpf.UI.Extensions
|
namespace TheXamlGuy.NotificationFlyout.Common.Extensions
|
||||||
{
|
{
|
||||||
internal static class RECTExtensions
|
internal static class RECTExtensions
|
||||||
{
|
{
|
||||||
internal static Rect ToRect(this RECT rect)
|
internal static Rect ToRect(this RECT rect)
|
||||||
{
|
{
|
||||||
if (rect.right - rect.left < 0 || rect.bottom - rect.top < 0) return new Rect(rect.left, rect.top, 0, 0);
|
if (rect.right - rect.left < 0 || rect.bottom - rect.top < 0) return new Rect(rect.left, rect.top, 0, 0);
|
||||||
|
|
||||||
return new Rect(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top);
|
return new Rect(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
|
|
||||||
namespace NotificationFlyout.Wpf.UI.Extensions
|
namespace TheXamlGuy.NotificationFlyout.Common.Extensions
|
||||||
{
|
{
|
||||||
public static class RegistryKeyExtensions
|
public static class RegistryKeyExtensions
|
||||||
{
|
{
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
using Microsoft.Windows.Sdk;
|
using Microsoft.Windows.Sdk;
|
||||||
|
|
||||||
namespace NotificationFlyout.Wpf.UI.Helpers
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
{
|
{
|
||||||
internal class CursorHelper
|
internal class CursorHelper
|
||||||
{
|
{
|
||||||
public static POINT GetPhysicalCursorPos()
|
public static POINT GetPhysicalCursorPos()
|
||||||
{
|
{
|
||||||
PInvoke.GetPhysicalCursorPos(out POINT point);
|
PInvoke.GetPhysicalCursorPos(out var point);
|
||||||
return point;
|
return point;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
|
{
|
||||||
|
public partial class NotificationIconHelper
|
||||||
|
{
|
||||||
|
private enum NotifyIconBalloonType
|
||||||
|
{
|
||||||
|
None = 0x00,
|
||||||
|
Info = 0x01,
|
||||||
|
Warning = 0x02,
|
||||||
|
Error = 0x03,
|
||||||
|
User = 0x04,
|
||||||
|
NoSound = 0x10,
|
||||||
|
LargeIcon = 0x20,
|
||||||
|
RespectQuietTime = 0x80
|
||||||
|
}
|
||||||
|
|
||||||
|
private enum NotifyIconCommand : uint
|
||||||
|
{
|
||||||
|
Add = 0x0,
|
||||||
|
Delete = 0x2,
|
||||||
|
Modify = 0x1,
|
||||||
|
SetVersion = 0x4
|
||||||
|
}
|
||||||
|
|
||||||
|
[Flags]
|
||||||
|
private enum NotifyIconDataMember : uint
|
||||||
|
{
|
||||||
|
Message = 0x01,
|
||||||
|
Icon = 0x02,
|
||||||
|
Tip = 0x04,
|
||||||
|
State = 0x08,
|
||||||
|
Info = 0x10,
|
||||||
|
Realtime = 0x40,
|
||||||
|
UseLegacyToolTips = 0x80
|
||||||
|
}
|
||||||
|
|
||||||
|
private enum NotifyIconState : uint
|
||||||
|
{
|
||||||
|
Visible = 0x00,
|
||||||
|
Hidden = 0x01
|
||||||
|
}
|
||||||
|
|
||||||
|
[DllImport("user32.dll", SetLastError = true)]
|
||||||
|
private static extern IntPtr DefWindowProcW(IntPtr handle, uint msg, IntPtr wParam, IntPtr lParam);
|
||||||
|
|
||||||
|
[DllImport("shell32.dll", SetLastError = true)]
|
||||||
|
private static extern int Shell_NotifyIcon(NotifyIconCommand notifyCommand, ref NotifyIconData notifyIconData);
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
|
||||||
|
private struct NotifyIconData
|
||||||
|
{
|
||||||
|
public uint cbSize;
|
||||||
|
public IntPtr WindowHandle;
|
||||||
|
public uint TaskbarIconId;
|
||||||
|
public NotifyIconDataMember ValidMembers;
|
||||||
|
public uint CallbackMessageId;
|
||||||
|
public IntPtr IconHandle;
|
||||||
|
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
|
||||||
|
public string ToolTipText;
|
||||||
|
|
||||||
|
public NotifyIconState IconState;
|
||||||
|
public NotifyIconState StateMask;
|
||||||
|
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
|
||||||
|
public string BalloonText;
|
||||||
|
|
||||||
|
public uint VersionOrTimeout;
|
||||||
|
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)]
|
||||||
|
public string BalloonTitle;
|
||||||
|
|
||||||
|
public NotifyIconBalloonType BalloonFlags;
|
||||||
|
public Guid TaskbarIconGuid;
|
||||||
|
public IntPtr CustomBalloonIconHandle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,110 @@
|
|||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
|
{
|
||||||
|
public partial class NotificationIconHelper : IDisposable, IWndProcHandler
|
||||||
|
{
|
||||||
|
private const int CallbackMessage = 0x400;
|
||||||
|
private const uint IconVersion = 0x4;
|
||||||
|
|
||||||
|
private readonly object _lock = new();
|
||||||
|
private bool _isDisposed;
|
||||||
|
private NotifyIconData _notifyIconData;
|
||||||
|
|
||||||
|
private NotificationIconHelper()
|
||||||
|
{
|
||||||
|
WndProcHandlerSubscriber.Current.Subscribe(this);
|
||||||
|
CreateNotificationIcon();
|
||||||
|
}
|
||||||
|
|
||||||
|
~NotificationIconHelper()
|
||||||
|
{
|
||||||
|
Dispose(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public event EventHandler<NotificationIconInvokedEventArgs> IconInvoked;
|
||||||
|
|
||||||
|
public static NotificationIconHelper Create() => new();
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
Dispose(true);
|
||||||
|
GC.SuppressFinalize(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Handle(uint message, IntPtr wParam, IntPtr lParam)
|
||||||
|
{
|
||||||
|
if (message == CallbackMessage)
|
||||||
|
{
|
||||||
|
switch ((uint)lParam)
|
||||||
|
{
|
||||||
|
case (uint)WndProcMessages.WM_LBUTTONUP:
|
||||||
|
InvokeIconInvoked(PointerButton.Left);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case (uint)WndProcMessages.WM_MBUTTONUP:
|
||||||
|
InvokeIconInvoked(PointerButton.Middle);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case (uint)WndProcMessages.WM_RBUTTONUP:
|
||||||
|
InvokeIconInvoked(PointerButton.Right);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetIcon(IntPtr iconHandle)
|
||||||
|
{
|
||||||
|
lock (_lock)
|
||||||
|
{
|
||||||
|
_notifyIconData.IconHandle = iconHandle;
|
||||||
|
WriteNotifyIconData(NotifyIconCommand.Modify, NotifyIconDataMember.Icon);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CreateNotificationIcon()
|
||||||
|
{
|
||||||
|
lock (_lock)
|
||||||
|
{
|
||||||
|
_notifyIconData = new NotifyIconData();
|
||||||
|
|
||||||
|
_notifyIconData.cbSize = (uint)Marshal.SizeOf(_notifyIconData);
|
||||||
|
_notifyIconData.WindowHandle = WndProcListener.Current.Handle;
|
||||||
|
_notifyIconData.TaskbarIconId = 0x0;
|
||||||
|
_notifyIconData.CallbackMessageId = CallbackMessage;
|
||||||
|
_notifyIconData.VersionOrTimeout = IconVersion;
|
||||||
|
|
||||||
|
_notifyIconData.IconHandle = IntPtr.Zero;
|
||||||
|
|
||||||
|
_notifyIconData.IconState = NotifyIconState.Hidden;
|
||||||
|
_notifyIconData.StateMask = NotifyIconState.Hidden;
|
||||||
|
|
||||||
|
WriteNotifyIconData(NotifyIconCommand.Add, NotifyIconDataMember.Message | NotifyIconDataMember.Icon | NotifyIconDataMember.Tip);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (_isDisposed || !disposing) return;
|
||||||
|
lock (_lock)
|
||||||
|
{
|
||||||
|
_isDisposed = true;
|
||||||
|
RemoveNotificationIcon();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InvokeIconInvoked(PointerButton pointerButton) => IconInvoked?.Invoke(this, new NotificationIconInvokedEventArgs(pointerButton));
|
||||||
|
|
||||||
|
private void RemoveNotificationIcon() => WriteNotifyIconData(NotifyIconCommand.Delete, NotifyIconDataMember.Message);
|
||||||
|
|
||||||
|
private void WriteNotifyIconData(NotifyIconCommand command, NotifyIconDataMember flags)
|
||||||
|
{
|
||||||
|
_notifyIconData.ValidMembers = flags;
|
||||||
|
lock (_lock)
|
||||||
|
{
|
||||||
|
Shell_NotifyIcon(command, ref _notifyIconData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
|
{
|
||||||
|
public class NotificationIconInvokedEventArgs : EventArgs
|
||||||
|
{
|
||||||
|
internal NotificationIconInvokedEventArgs(PointerButton pointerButton) => PointerButton = pointerButton;
|
||||||
|
|
||||||
|
public PointerButton PointerButton { get; private set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
|
{
|
||||||
|
public enum PointerButton
|
||||||
|
{
|
||||||
|
Left = 0,
|
||||||
|
Middle = 1,
|
||||||
|
Right = 2,
|
||||||
|
XButton1 = 3,
|
||||||
|
XButton2 = 4
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,10 +1,9 @@
|
|||||||
using Microsoft.Windows.Sdk;
|
using Microsoft.Windows.Sdk;
|
||||||
using NotificationFlyout.Wpf.UI.Helpers;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Windows;
|
using Windows.Foundation;
|
||||||
|
|
||||||
namespace NotificationFlyout.Wpf.UI
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
{
|
{
|
||||||
public class Screen
|
public class Screen
|
||||||
{
|
{
|
||||||
@@ -62,14 +61,8 @@ namespace NotificationFlyout.Wpf.UI
|
|||||||
|
|
||||||
public override bool Equals(object obj)
|
public override bool Equals(object obj)
|
||||||
{
|
{
|
||||||
if (obj is Screen monitor)
|
if (obj is not Screen monitor) return false;
|
||||||
{
|
return _monitorHandle == monitor._monitorHandle;
|
||||||
if (_monitorHandle == monitor._monitorHandle)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override int GetHashCode()
|
public override int GetHashCode()
|
||||||
@@ -1,9 +1,8 @@
|
|||||||
using Microsoft.Windows.Sdk;
|
using Microsoft.Windows.Sdk;
|
||||||
using System.Reflection;
|
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Windows;
|
using Windows.Foundation;
|
||||||
|
|
||||||
namespace NotificationFlyout.Wpf.UI.Helpers
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
{
|
{
|
||||||
public static class SystemInformationHelper
|
public static class SystemInformationHelper
|
||||||
{
|
{
|
||||||
@@ -14,16 +13,6 @@ namespace NotificationFlyout.Wpf.UI.Helpers
|
|||||||
public static Rect VirtualScreen => GetVirtualScreen();
|
public static Rect VirtualScreen => GetVirtualScreen();
|
||||||
public static Rect WorkingArea => GetWorkingArea();
|
public static Rect WorkingArea => GetWorkingArea();
|
||||||
|
|
||||||
public static int GetCurrentDpi()
|
|
||||||
{
|
|
||||||
return (int)typeof(SystemParameters).GetProperty("Dpi", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static double GetCurrentDpiScaleFactor()
|
|
||||||
{
|
|
||||||
return (double)GetCurrentDpi() / 96;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Rect GetVirtualScreen()
|
private static Rect GetVirtualScreen()
|
||||||
{
|
{
|
||||||
var size = new Size(PInvoke.GetSystemMetrics(SM_CXSCREEN), PInvoke.GetSystemMetrics(SM_CYSCREEN));
|
var size = new Size(PInvoke.GetSystemMetrics(SM_CXSCREEN), PInvoke.GetSystemMetrics(SM_CYSCREEN));
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace NotificationFlyout.Wpf.UI.Helpers
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
{
|
{
|
||||||
public class SystemPersonalisationChangedEventArgs : EventArgs
|
public class SystemPersonalisationChangedEventArgs : EventArgs
|
||||||
{
|
{
|
||||||
@@ -13,6 +13,5 @@ namespace NotificationFlyout.Wpf.UI.Helpers
|
|||||||
public SystemTheme Theme { get; private set; }
|
public SystemTheme Theme { get; private set; }
|
||||||
|
|
||||||
public bool IsColorPrevalence { get; private set; }
|
public bool IsColorPrevalence { get; private set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
using NotificationFlyout.Wpf.UI.Extensions;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Runtime.InteropServices;
|
using TheXamlGuy.NotificationFlyout.Common.Extensions;
|
||||||
using System.Windows;
|
|
||||||
using System.Windows.Interop;
|
|
||||||
using Windows.UI.ViewManagement;
|
using Windows.UI.ViewManagement;
|
||||||
|
|
||||||
namespace NotificationFlyout.Wpf.UI.Helpers
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
{
|
{
|
||||||
public class SystemPersonalisationHelper
|
public class SystemPersonalisationHelper : IWndProcHandler
|
||||||
{
|
{
|
||||||
|
private static readonly Lazy<SystemPersonalisationHelper> _current = new(() => new SystemPersonalisationHelper());
|
||||||
|
|
||||||
private readonly UISettings _settings = new();
|
private readonly UISettings _settings = new();
|
||||||
private readonly string PersonalizeKey = @"Software\Microsoft\Windows\CurrentVersion\Themes\Personalize";
|
private readonly string PersonalizeKey = @"Software\Microsoft\Windows\CurrentVersion\Themes\Personalize";
|
||||||
private SystemTheme _currentTheme;
|
private SystemTheme _currentTheme;
|
||||||
private bool _isColorPrevalence;
|
private bool _isColorPrevalence;
|
||||||
|
|
||||||
private SystemPersonalisationHelper(Window window)
|
private SystemPersonalisationHelper()
|
||||||
{
|
{
|
||||||
var source = HwndSource.FromHwnd(window.GetHandle());
|
WndProcHandlerSubscriber.Current.Subscribe(this);
|
||||||
source.AddHook(new HwndSourceHook(WndProc));
|
|
||||||
|
|
||||||
_currentTheme = GetTheme();
|
_currentTheme = GetTheme();
|
||||||
_isColorPrevalence = GetIsColorPrevalence();
|
_isColorPrevalence = GetIsColorPrevalence();
|
||||||
@@ -26,16 +24,17 @@ namespace NotificationFlyout.Wpf.UI.Helpers
|
|||||||
|
|
||||||
public event EventHandler<SystemPersonalisationChangedEventArgs> ThemeChanged;
|
public event EventHandler<SystemPersonalisationChangedEventArgs> ThemeChanged;
|
||||||
|
|
||||||
|
public static SystemPersonalisationHelper Current => _current.Value;
|
||||||
public bool IsColorPrevalence => GetIsColorPrevalence();
|
public bool IsColorPrevalence => GetIsColorPrevalence();
|
||||||
public SystemTheme Theme => GetTheme();
|
public SystemTheme Theme => GetTheme();
|
||||||
|
|
||||||
public static SystemPersonalisationHelper Create(Window window)
|
public void Handle(uint message, IntPtr wParam, IntPtr lParam)
|
||||||
{
|
{
|
||||||
return new SystemPersonalisationHelper(window);
|
if (message == (int)WndProcMessages.WM_SETTINGCHANGE)
|
||||||
|
{
|
||||||
|
RaiseThemeChangedEvent();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[DllImport("user32.dll", SetLastError = true)]
|
|
||||||
private static extern IntPtr DefWindowProcW(IntPtr handle, uint msg, IntPtr wParam, IntPtr lParam);
|
|
||||||
|
|
||||||
private bool GetIsColorPrevalence()
|
private bool GetIsColorPrevalence()
|
||||||
{
|
{
|
||||||
@@ -63,15 +62,5 @@ namespace NotificationFlyout.Wpf.UI.Helpers
|
|||||||
ThemeChanged?.Invoke(this, new SystemPersonalisationChangedEventArgs(theme, isColorPrevalence));
|
ThemeChanged?.Invoke(this, new SystemPersonalisationChangedEventArgs(theme, isColorPrevalence));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
|
|
||||||
{
|
|
||||||
if (msg == (int)WndProcMessages.WM_SETTINGCHANGE)
|
|
||||||
{
|
|
||||||
RaiseThemeChangedEvent();
|
|
||||||
}
|
|
||||||
|
|
||||||
return DefWindowProcW(hwnd, (uint)msg, wParam, (lParam));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
namespace NotificationFlyout.Wpf.UI.Helpers
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
{
|
{
|
||||||
public enum SystemTheme
|
public enum SystemTheme
|
||||||
{
|
{
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
using Microsoft.Windows.Sdk;
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
|
{
|
||||||
|
public partial class TaskbarHelper
|
||||||
|
{
|
||||||
|
private const string ShellTrayHandleName = "Shell_TrayWnd";
|
||||||
|
private const int SPI_SETWORKAREA = 0x002F;
|
||||||
|
private readonly uint WM_TASKBARCREATED = PInvoke.RegisterWindowMessage("TaskbarCreated");
|
||||||
|
|
||||||
|
private enum AppBarEdge : uint
|
||||||
|
{
|
||||||
|
Left = 0,
|
||||||
|
Top = 1,
|
||||||
|
Right = 2,
|
||||||
|
Bottom = 3
|
||||||
|
}
|
||||||
|
|
||||||
|
private enum AppBarMessage : uint
|
||||||
|
{
|
||||||
|
New = 0x00000000,
|
||||||
|
Remove = 0x00000001,
|
||||||
|
QueryPos = 0x00000002,
|
||||||
|
SetPos = 0x00000003,
|
||||||
|
GetState = 0x00000004,
|
||||||
|
GetTaskbarPos = 0x00000005,
|
||||||
|
Activate = 0x00000006,
|
||||||
|
GetAutoHideBar = 0x00000007,
|
||||||
|
SetAutoHideBar = 0x00000008,
|
||||||
|
WindowPosChanged = 0x00000009,
|
||||||
|
SetState = 0x0000000A,
|
||||||
|
}
|
||||||
|
|
||||||
|
[DllImport("user32.dll", SetLastError = true)]
|
||||||
|
private static extern IntPtr DefWindowProcW(IntPtr handle, uint msg, IntPtr wParam, IntPtr lParam);
|
||||||
|
|
||||||
|
private static IntPtr GetSystemTrayHandle() => WindowHelper.GetHandle(ShellTrayHandleName);
|
||||||
|
|
||||||
|
[DllImport("shell32.dll", SetLastError = true)]
|
||||||
|
private static extern IntPtr SHAppBarMessage(AppBarMessage dwMessage, ref AppBarData pData);
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
private struct AppBarData
|
||||||
|
{
|
||||||
|
public uint cbSize;
|
||||||
|
public IntPtr hWnd;
|
||||||
|
public uint uCallbackMessage;
|
||||||
|
public AppBarEdge uEdge;
|
||||||
|
public RECT rect;
|
||||||
|
public int lParam;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using TheXamlGuy.NotificationFlyout.Common.Extensions;
|
||||||
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
|
{
|
||||||
|
public partial class TaskbarHelper : IWndProcHandler
|
||||||
|
{
|
||||||
|
private TaskbarHelper() => WndProcHandlerSubscriber.Current.Subscribe(this);
|
||||||
|
|
||||||
|
public event EventHandler TaskbarChanged;
|
||||||
|
|
||||||
|
public static TaskbarHelper Create() => new();
|
||||||
|
|
||||||
|
public TaskbarState GetCurrentState()
|
||||||
|
{
|
||||||
|
var handle = GetSystemTrayHandle();
|
||||||
|
var state = new TaskbarState
|
||||||
|
{
|
||||||
|
Screen = Screen.FromHandle(handle)
|
||||||
|
};
|
||||||
|
|
||||||
|
var appBarData = GetAppBarData(handle);
|
||||||
|
GetAppBarPosition(ref appBarData);
|
||||||
|
|
||||||
|
state.Rect = appBarData.rect.ToRect();
|
||||||
|
state.Position = (TaskbarPosition)appBarData.uEdge;
|
||||||
|
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Handle(uint message, IntPtr wParam, IntPtr lParam)
|
||||||
|
{
|
||||||
|
if (message == WM_TASKBARCREATED || message == (int)WndProcMessages.WM_SETTINGCHANGE && (int)wParam == SPI_SETWORKAREA)
|
||||||
|
{
|
||||||
|
TaskbarChanged?.Invoke(this, EventArgs.Empty);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private AppBarData GetAppBarData(IntPtr handle)
|
||||||
|
{
|
||||||
|
return new AppBarData
|
||||||
|
{
|
||||||
|
cbSize = (uint)Marshal.SizeOf(typeof(AppBarData)),
|
||||||
|
hWnd = handle
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private void GetAppBarPosition(ref AppBarData appBarData) => SHAppBarMessage(AppBarMessage.GetTaskbarPos, ref appBarData);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
namespace NotificationFlyout.Wpf.UI
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
{
|
{
|
||||||
|
|
||||||
public enum TaskbarPosition
|
public enum TaskbarPosition
|
||||||
{
|
{
|
||||||
Left = 0,
|
Left = 0,
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
using System.Windows;
|
using Windows.Foundation;
|
||||||
|
|
||||||
namespace NotificationFlyout.Wpf.UI
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
{
|
{
|
||||||
public struct TaskbarState
|
public struct TaskbarState
|
||||||
{
|
{
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
using Microsoft.Windows.Sdk;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
|
{
|
||||||
|
public class WindowHelper
|
||||||
|
{
|
||||||
|
public static IntPtr GetHandle(string windowName) => PInvoke.FindWindow(windowName, null);
|
||||||
|
|
||||||
|
public static uint GetDpi(IntPtr handle) => PInvoke.GetDpiForWindow((HWND)handle);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
|
{
|
||||||
|
internal partial class WndProcHelper
|
||||||
|
{
|
||||||
|
[DllImport("user32.dll", SetLastError = true)]
|
||||||
|
private static extern IntPtr CreateWindowExW(uint dwExStyle, [MarshalAs(UnmanagedType.LPWStr)] string lpClassName, [MarshalAs(UnmanagedType.LPWStr)] string lpWindowName, uint dwStyle, int x, int y, int nWidth, int nHeight, IntPtr hWndParent, IntPtr hMenu, IntPtr hInstance, IntPtr lpParam);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", SetLastError = true)]
|
||||||
|
private static extern IntPtr DefWindowProcW(IntPtr handle, uint msg, IntPtr wParam, IntPtr lParam);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", SetLastError = true)]
|
||||||
|
private static extern bool DestroyWindow(IntPtr handle);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", SetLastError = true)]
|
||||||
|
private static extern ushort RegisterClassW([In] ref WNDCLASSW lpWndClass);
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
private struct WNDCLASSW
|
||||||
|
{
|
||||||
|
public uint style;
|
||||||
|
public WndProcHandler lpfnWndProc;
|
||||||
|
public int cbClsExtra;
|
||||||
|
public int cbWndExtra;
|
||||||
|
public IntPtr hInstance;
|
||||||
|
public IntPtr hIcon;
|
||||||
|
public IntPtr hCursor;
|
||||||
|
public IntPtr hbrBackground;
|
||||||
|
[MarshalAs(UnmanagedType.LPWStr)] public string lpszMenuName;
|
||||||
|
[MarshalAs(UnmanagedType.LPWStr)] public string lpszClassName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
|
{
|
||||||
|
internal partial class WndProcHelper : IDisposable
|
||||||
|
{
|
||||||
|
private WndProcHandler _handler;
|
||||||
|
|
||||||
|
private WndProcHelper() => CreateWndProcWindow();
|
||||||
|
|
||||||
|
private delegate IntPtr WndProcHandler(IntPtr hwnd, uint uMsg, IntPtr wparam, IntPtr lparam);
|
||||||
|
|
||||||
|
public event EventHandler<WndProcHelperMessageEventArgs> WndProcMessage;
|
||||||
|
|
||||||
|
public IntPtr Handle { get; private set; }
|
||||||
|
|
||||||
|
public static WndProcHelper Create() => new();
|
||||||
|
|
||||||
|
public void Dispose() => DestroyWindow(Handle);
|
||||||
|
|
||||||
|
private void CreateWndProcWindow()
|
||||||
|
{
|
||||||
|
var windowName = Guid.NewGuid().ToString();
|
||||||
|
_handler = WndProc;
|
||||||
|
|
||||||
|
WNDCLASSW wndProcWindow;
|
||||||
|
|
||||||
|
wndProcWindow.style = 0;
|
||||||
|
wndProcWindow.lpfnWndProc = _handler;
|
||||||
|
wndProcWindow.cbClsExtra = 0;
|
||||||
|
wndProcWindow.cbWndExtra = 0;
|
||||||
|
wndProcWindow.hInstance = IntPtr.Zero;
|
||||||
|
wndProcWindow.hIcon = IntPtr.Zero;
|
||||||
|
wndProcWindow.hCursor = IntPtr.Zero;
|
||||||
|
wndProcWindow.hbrBackground = IntPtr.Zero;
|
||||||
|
wndProcWindow.lpszMenuName = "";
|
||||||
|
wndProcWindow.lpszClassName = windowName;
|
||||||
|
|
||||||
|
RegisterClassW(ref wndProcWindow);
|
||||||
|
|
||||||
|
Handle = CreateWindowExW(0, windowName, "", 0, 0, 0, 1, 1, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero);
|
||||||
|
}
|
||||||
|
|
||||||
|
private IntPtr WndProc(IntPtr handle, uint message, IntPtr wParam, IntPtr lParam)
|
||||||
|
{
|
||||||
|
WndProcMessage?.Invoke(this, new WndProcHelperMessageEventArgs(message, wParam, lParam));
|
||||||
|
return DefWindowProcW(handle, message, wParam, lParam);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
|
{
|
||||||
|
internal class WndProcHelperMessageEventArgs : EventArgs
|
||||||
|
{
|
||||||
|
public WndProcHelperMessageEventArgs(uint message, IntPtr wParam, IntPtr lParam)
|
||||||
|
{
|
||||||
|
Message = message;
|
||||||
|
WParam = wParam;
|
||||||
|
LParam = lParam;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IntPtr LParam { get; private set; }
|
||||||
|
public uint Message { get; private set; }
|
||||||
|
public IntPtr WParam { get; private set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
namespace NotificationFlyout.Wpf.UI.Helpers
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
{
|
{
|
||||||
internal enum WndProcMessages
|
internal enum WndProcMessages
|
||||||
{
|
{
|
||||||
@@ -1,13 +1,14 @@
|
|||||||
Shell_NotifyIcon
|
Shell_NotifyIcon
|
||||||
GetSystemMetricsForDpi
|
|
||||||
DefWindowProcW
|
DefWindowProcW
|
||||||
GetSystemMetrics
|
|
||||||
MonitorFromWindow
|
MonitorFromWindow
|
||||||
RegisterWindowMessage
|
RegisterWindowMessage
|
||||||
SHAppBarMessage
|
SHAppBarMessage
|
||||||
SetWindowPos
|
|
||||||
GetWindowLong
|
GetWindowLong
|
||||||
SetWindowLong
|
|
||||||
GetDpiForWindow
|
GetDpiForWindow
|
||||||
FindWindow
|
FindWindow
|
||||||
GetPhysicalCursorPos
|
GetPhysicalCursorPos
|
||||||
|
GetSystemMetricsForDpi
|
||||||
|
GetCurrentPackageFullName
|
||||||
|
GetSystemMetrics
|
||||||
|
SetWindowLong
|
||||||
|
SetWindowPos
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
|
[assembly: InternalsVisibleTo("TheXamlGuy.NotificationFlyout.Wpf.UI")]
|
||||||
|
[assembly: InternalsVisibleTo("TheXamlGuy.NotificationFlyout.Wpf.UI.Extensions")]
|
||||||
|
[assembly: InternalsVisibleTo("TheXamlGuy.NotificationFlyout.Wpf.UI.Controls")]
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<Project Sdk="MSBuild.Sdk.Extras">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFrameworks>netcoreapp3.1</TargetFrameworks>
|
||||||
|
<LangVersion>9.0</LangVersion>
|
||||||
|
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||||
|
<Company>TheXamlGuy</Company>
|
||||||
|
<Company>TheXamlGuy</Company>
|
||||||
|
<Authors>Daniel Clark</Authors>
|
||||||
|
<Product>TheXamlGuy.NotificationFlyout</Product>
|
||||||
|
<Version>1.1.0</Version>
|
||||||
|
<Platforms>AnyCPU;x64</Platforms>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.Windows.SDK.Contracts" Version="10.0.19041.1" Condition="'$(TargetFramework)' == 'netcoreapp3.1'" />
|
||||||
|
<PackageReference Include="Microsoft.Win32.Registry" Version="6.0.0-preview.1.21102.12" />
|
||||||
|
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.1.319-beta">
|
||||||
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="System.Drawing.Common" Version="6.0.0-preview.1.21102.12" />
|
||||||
|
<PackageReference Include="System.Memory" Version="4.5.4" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
|
{
|
||||||
|
public interface IWndProcHandler
|
||||||
|
{
|
||||||
|
void Handle(uint message, IntPtr wParam, IntPtr lParam);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
|
{
|
||||||
|
internal interface IWndProcHandlerCollection : IList<WndProcHandlerReference>
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
namespace TheXamlGuy.NotificationFlyout.Common.Helpers
|
||||||
|
{
|
||||||
|
public interface IWndProcHandlerSubscriber
|
||||||
|
{
|
||||||
|
void Subscribe<TWndProcHandler>(TWndProcHandler handler) where TWndProcHandler : IWndProcHandler;
|
||||||
|
}
|
||||||
|
}
|
||||||