1

我想尽可能在​​我的自定义控件中使用流畅的设计,并且仍然支持旧系统。我该怎么做呢?这需要我更改现有的 XAML 文件,并且当我这样做时,它不会在旧版本的 Windows 中运行。

4

1 回答 1

2

我已经这样解决了。我在 App-constructor 中添加了这个以添加一些全局资源限定符

if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5))
{
    ResourceContext.SetGlobalQualifierValue("Custom", "Fluent");
}

然后我创建了两个不同的资源字典,一个用于流利的 XAML,另一个用于非流利的 XAML。这些文件的名称如下:

MyResourceDictionary.xaml
MyResourceDictionary.Custom-Fluent.xaml

你可以用这个做很多事情。但据我所知,即使使用条件 XAML(至少如果您想在创建者更新之前支持版本)也无法基于 AcrylicBrush 等新类型创建自定义资源。相反,我正在使用这样的现有资源:

<StaticResource x:Key="MyCustomBrush" 
                ResourceKey="SystemControlAcrylicElementBrush" />
于 2017-10-15T08:31:18.813 回答