【发布时间】:2021-10-20 05:46:00
【问题描述】:
【问题讨论】:
-
为什么需要得到它? WPF 不应该为您处理它吗? stackoverflow.com/questions/9373260/…
-
我需要这个值 @gunr2171,我相信它在 UWP 中是可能的,不幸的是我需要它用于 WPF,但我找不到获得它的方法。
【问题讨论】:
根据您的目标是 .NET 5 还是更早版本,您应该将 TargetFramework 设置为 net5.0-windows10.0.* 或将 Microsoft.Windows.SDK.Contracts NuGet 包安装为描述了here。
然后您可以使用Windows.UI.ViewManagement.UISettings.TextScaleFactor 属性:
double factor = new UISettings().TextScaleFactor;
【讨论】:
.NET Framework 4.7.2,我已经安装了Microsoft.Windows.SDK.Contracts,但不包括Windows.UI.ViewManagement命名空间(仅Windows.UI.Xaml
Microsoft.Windows.SDK.Contracts.targets 中有一个错误说必须使用PackageReference。这是关于向我的项目添加 nuget 包的引用吗?
Microsoft.Windows.SDK.Contracts.targets 文件的内容。 <?xml version="1.0" encoding="utf-8"?> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Target Name="PackageReferenceCheck" BeforeTargets="Build"> <Error Text="Must use PackageReference" Condition="'@(PackageReference)' == ''" /> </Target> </Project>这就是我得到的全部
.csproj 文件的格式?
我找到了一种无需安装任何 Nuget 包即可检索 文本缩放因子 的方法。这个想法是直接从注册表中获取值。
var userKey = Microsoft.Win32.Registry.CurrentUser;
var softKey = userKey.OpenSubKey("Software");
var micKey = softKey.OpenSubKey("Microsoft");
var accKey = micKey.OpenSubKey("Accessibility");
var factor = accKey.GetValue("TextScaleFactor");`
【讨论】: