如何从 WPF MSIX 应用程序(桌面桥)更改 Windows 10 颜色设置?
Posted
技术标签:
【中文标题】如何从 WPF MSIX 应用程序(桌面桥)更改 Windows 10 颜色设置?【英文标题】:How can I change the Windows 10 Colors settings from a WPF MSIX app (Desktop Bridge)? 【发布时间】:2021-08-11 00:48:48 【问题描述】:在 Win 10 中有这部分的自定义设置
我想知道是否有一种方法可以更改深色/浅色设置和强调色,而无需更改注册表项(据我所知,这涉及将其他进程作为桌面扩展程序产生的大量开销以及什么 -没有,并在之后执行额外的步骤来发布应用程序)。
如果没有这种方法,是否有实施这些功能的时间表? (例如将它们放在Windows.System.UserProfile.UserProfilePersonalizationSettings.Current
下)-(希望 MSFT 的人看到这一点)
谢谢。
【问题讨论】:
你的进展如何?您的问题解决了吗? 不,我想我得到了一个答案,即目前没有办法很好地做到这一点,但是如果有计划在我提到的命名空间下实现它,我没有得到任何答案(即已经是 Contracts 包的一部分,所以这个答案的很大一部分是多余的)。 我在你说的命名空间下检查了这些属性和方法,没有相关的API可以做到这一点,所以可能需要通过设置app手动更改。 不,我不需要通过设置应用程序更改它,我不能告诉用户“通过设置应用程序更改它”,应用程序的一部分是我可以更改这些用户的设置。正如我所说,它已经可以通过注册表编辑来完成,但这很麻烦。我想您希望我将您的帖子标记为答案。如果您还可以添加有关计划的信息以使其易于访问,我可以做到这一点(例如,可以通过UserProfilePersonalizationSettings
轻松更改墙纸,因为这是我的问题的一部分
【参考方案1】:
目前,uwp 还没有提供这样的 api 来直接改变 Dark/Light 设置和强调色。一般建议通过launching the Windows Settings app进行。另外,如果你想在 WPF MSIX 应用程序中使用它,你需要添加指定的包引用,这样你就可以call windows runtime api from this desktop app。请参考以下步骤。
1.安装Microsoft.Windows.SDK.Contracts NuGet包
点击工具->NuGet包管理器-> 包管理器 设置-> 将默认包管理格式更改为 包参考。
安装Microsoft.Windows.SDK.Contracts package
,注意你
需要安装合适的版本。请检查
下面对应的版本。 (安装详情:右键
参考-> 管理 NuGet 包-> 浏览-> 搜索
Microsoft.Windows.SDK.Contracts->安装)
10.0.19041.xxxx:为 Windows 10 版本 2004 版本 20H2 选择此选项 10.0.18362.xxxx:为 Windows 10 版本 1903 选择此选项。 10.0.17763.xxxx:为 Windows 10 版本 1809 选择此选项。 10.0.17134.xxxx:为 Windows 10 版本 1803 选择此项。
2.启动设置应用
private async void Button_Click(object sender, RoutedEventArgs e)
await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings:colors"));
【讨论】:
以上是关于如何从 WPF MSIX 应用程序(桌面桥)更改 Windows 10 颜色设置?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 XamlIslands 和桌面桥打包 WPF (.NET Core) 应用程序?