我正在努力让Fluent Design在我的Xamarin.Forms UWP App上运行.我尝试过使用渲染器,覆盖样式的不同方法,但它们都不起作用.
丙烯酸刷子总是回落到FallbackColor.
建立:
目标版本:Windows 10(1803)
最低版本:Windows 10 Fall Creators Update(16299).
而且我也在检查
Windows.Foundation.Metadata.ApiInformation.IsTypePresent(“Windows.UI.Xaml.Media.AcrylicBrush”)可用.
使用任何预定义的丙烯酸笔刷会导致“找不到具有名称/密钥SystemControlChromeLowAcrylicWindowBrush的资源”.
AcrylicBrush& Splitview风格:
<media:AcrylicBrush x:Key="HostBackdropBrush" BackgroundSource="HostBackdrop" TintColor="White" TintOpacity="0.4" FallbackColor="WhiteSmoke" /> <Style TargetType="SplitView"> <Setter Property="HorizontalContentAlignment" Value="Stretch"/> <Setter Property="VerticalContentAlignment" Value="Stretch"/> <Setter Property="OpenPaneLength" Value="{ThemeResource SplitViewOpenPaneThemeLength}"/> <Setter Property="CompactPaneLength" Value="{ThemeResource SplitViewCompactPaneThemeLength}"/> <Setter Property="PaneBackground" Value="{StaticResource HostBackdropBrush}"/> </Style>
自定义渲染器:
[assembly: ExportRenderer(typeof(MasterPage),typeof(MasterPageRenderer))] namespace MasterDetailPageNavigation.UWP { class MasterPageRenderer : PageRenderer { protected override void OnElementChanged(ElementChangedEventArgs<Page> e) { base.OnElementChanged(e); if (e.OldElement != null || Element == null) { return; } try { if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.UI.Xaml.Media.XamlCompositionBrushBase")) { Windows.UI.Xaml.Media.AcrylicBrush myBrush = new Windows.UI.Xaml.Media.AcrylicBrush(); myBrush.BackgroundSource = Windows.UI.Xaml.Media.AcrylicBackgroundSource.HostBackdrop; myBrush.TintColor = Windows.UI.Color.FromArgb(255,200,200); myBrush.TintOpacity = 0.2; Background = myBrush; } else { SolidColorBrush myBrush = new SolidColorBrush(Windows.UI.Color.FromArgb(255,240,240)); Background = myBrush; } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex); } } protected override Windows.Foundation.Size ArrangeOverride(Windows.Foundation.Size finalSize) { return base.ArrangeOverride(finalSize); } } } ```
解决方法
请看下面的项目:
stackoverflow.com/a/13563083/4373895
这应该可以解决您的问题.您可以通过将ThemeResources.xaml添加到项目资源来解决此问题.