UWP HiDPI icon support (#1515)

* Add HiDPI support for UWP on Windows 10

* Code structure improvement
This commit is contained in:
Zepp
2018-07-15 11:32:21 +08:00
committed by jhdxr
parent 1b55201fbd
commit 9b2239d4fa

View File

@@ -394,11 +394,11 @@ namespace Wox.Plugin.Program.Programs
internal string LogoUriFromManifest(IAppxManifestApplication app) internal string LogoUriFromManifest(IAppxManifestApplication app)
{ {
var logoKeyFromVersion = new Dictionary<PackageVersion, string> var logoKeyFromVersion = new Dictionary<PackageVersion, string>
{ {
{PackageVersion.Windows10, "Square44x44Logo"}, { PackageVersion.Windows10, "Square44x44Logo" },
{PackageVersion.Windows81, "Square30x30Logo"}, { PackageVersion.Windows81, "Square30x30Logo" },
{PackageVersion.Windows8, "SmallLogo"}, { PackageVersion.Windows8, "SmallLogo" },
}; };
if (logoKeyFromVersion.ContainsKey(Package.Version)) if (logoKeyFromVersion.ContainsKey(Package.Version))
{ {
var key = logoKeyFromVersion[Package.Version]; var key = logoKeyFromVersion[Package.Version];
@@ -436,23 +436,20 @@ namespace Wox.Plugin.Program.Programs
var prefix = path.Substring(0, end); var prefix = path.Substring(0, end);
var paths = new List<string> { path }; var paths = new List<string> { path };
// todo hidpi icon var scaleFactors = new Dictionary<PackageVersion, List<int>>
if (Package.Version == PackageVersion.Windows10)
{ {
paths.Add($"{prefix}.scale-100{extension}"); // scale factors on win10: https://docs.microsoft.com/en-us/windows/uwp/controls-and-patterns/tiles-and-notifications-app-assets#asset-size-tables,
paths.Add($"{prefix}.scale-200{extension}"); { PackageVersion.Windows10, new List<int> { 100, 125, 150, 200, 400 } },
} { PackageVersion.Windows81, new List<int> { 100, 120, 140, 160, 180 } },
else if (Package.Version == PackageVersion.Windows81) { PackageVersion.Windows8, new List<int> { 100 } }
};
if (scaleFactors.ContainsKey(Package.Version))
{ {
paths.Add($"{prefix}.scale-100{extension}"); foreach (var factor in scaleFactors[Package.Version])
paths.Add($"{prefix}.scale-120{extension}"); {
paths.Add($"{prefix}.scale-140{extension}"); paths.Add($"{prefix}.scale-{factor}{extension}");
paths.Add($"{prefix}.scale-160{extension}"); }
paths.Add($"{prefix}.scale-180{extension}");
}
else if (Package.Version == PackageVersion.Windows8)
{
paths.Add($"{prefix}.scale-100{extension}");
} }
var selected = paths.FirstOrDefault(File.Exists); var selected = paths.FirstOrDefault(File.Exists);