我正在开发我的UWP应用程序。我成立了:
我使用了一些亚克力布。因为它们需要16299版本,所以我有两个带刷子的文件:
我在App.xaml.cs中使用下面的代码
private void SetupStyles() {
var prefix = PlatformApiService.IsAcrylicBrushAvailable ? "Fall/" : string.Empty;
var brushUri = new Uri($"ms-appx:///Styles/{prefix}Brushes.xaml", UriKind.Absolute);
Current.Resources.MergedDictionaries.Add(new ResourceDictionary { Source = brushUri });
}
当最小版本为 10586 时,一切正常,但 14393 我的应用无法构建,因为:
键入' Windows.UI.Xaml.Media.AcrylicBrush'是根据合同定义的Windows.Foundation.UniversalApiContract'版本' 5.0.0.0',但目标最低版本的合同版本是' 3.0.0.0'!
会员' BackgroundSource'在类型' Windows.UI.Xaml.Media.IAcrylicBrush'是根据合同定义的Windows.Foundation.UniversalApiContract'版本' 5.0.0.0',但目标最低版本的合同版本是' 3.0.0.0'!
会员' FallbackColor' on type' Windows.UI.Xaml.Media.IXamlCompositionBrushBase'是根据合同定义的Windows.Foundation.UniversalApiContract'版本' 4.0.0.0',但目标最低版本的合同版本是' 3.0.0.0'!
我无法使用Conditional XAML,因为它需要15063版本。我该怎么办?
答案 0 :(得分:3)
您可以在XAML中创建资产SolidColorBrushes,然后将它们覆盖到C#中的Acrylic画笔
if (ApiInformation.IsTypePresent("Windows.UI.Xaml.Media.AcrylicBrush"))
{
var brush= ((SolidColorBrush)App.Current.Resources["ExampleBrush"]).Color;
App.Current.Resources["ExampleBrush"] = new AcrylicBrush()
{
TintOpacity = ,
TintColor = brush,
FallbackColor = brush,
BackgroundSource = AcrylicBackgroundSource.HostBackdrop
};
}