我正在努力让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, 200);
myBrush.TintOpacity = 0.2;
Background = myBrush;
}
else
{
SolidColorBrush myBrush = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 240, 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);
}
}
}
```
解决方法:
请看下面的项目:
*.com/a/13563083/4373895
这应该可以解决您的问题.您可以通过将ThemeResources.xaml添加到项目资源来解决此问题.