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