如何使用流畅的设计并仍然支持旧的 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" />