如何使用流畅的设计并仍然支持旧的 Windows 10 个版本
How to use fluent design and still support older Windows 10 versions
我想在可能的情况下在我的自定义控件中使用流畅的设计,并且仍然支持旧系统。我该怎么做呢?这需要我更改现有的 XAML 文件,当我这样做时,它不会 运行 在旧版本的 Windows.
中
我是这样解决的。我在 App-constructor 中添加了这个以添加一些全局 resource qualifiers:
if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5))
{
ResourceContext.SetGlobalQualifierValue("Custom", "Fluent");
}
然后我创建了两个不同的资源词典,一个用于流利,一个用于 none 流利 XAML。文件命名如下:
MyResourceDictionary.xaml
MyResourceDictionary.Custom-Fluent.xaml
你可以用它做很多事情。但据我所知,即使使用 conditional XAML,也无法基于 AcrylicBrush 等新类型创建自定义资源(至少如果您想支持创作者更新之前的版本,则不能)。相反,我正在使用这样的现有资源:
<StaticResource x:Key="MyCustomBrush"
ResourceKey="SystemControlAcrylicElementBrush" />
我想在可能的情况下在我的自定义控件中使用流畅的设计,并且仍然支持旧系统。我该怎么做呢?这需要我更改现有的 XAML 文件,当我这样做时,它不会 运行 在旧版本的 Windows.
中我是这样解决的。我在 App-constructor 中添加了这个以添加一些全局 resource qualifiers:
if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5))
{
ResourceContext.SetGlobalQualifierValue("Custom", "Fluent");
}
然后我创建了两个不同的资源词典,一个用于流利,一个用于 none 流利 XAML。文件命名如下:
MyResourceDictionary.xaml
MyResourceDictionary.Custom-Fluent.xaml
你可以用它做很多事情。但据我所知,即使使用 conditional XAML,也无法基于 AcrylicBrush 等新类型创建自定义资源(至少如果您想支持创作者更新之前的版本,则不能)。相反,我正在使用这样的现有资源:
<StaticResource x:Key="MyCustomBrush"
ResourceKey="SystemControlAcrylicElementBrush" />