我正在努力让Fluent Design在我的Xamarin.Forms UWP App上运行.我尝试过使用渲染器,覆盖样式的不同方法,但它们都不起作用.
丙烯酸刷子总是回落到FallbackColor.
建立:
目标版本:Windows 10(1803)
最低版本:Windows 10 Fall Creators Update(16299).
而且我也在检查
Windows.Foundation.Metadata.Api@R_141_404[email protected](“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.Api@R_141_404[email protected]("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); } } } ```
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。