【发布时间】:2018-02-10 00:52:24
【问题描述】:
我们能否使用 Xamarin.Forms 在 Windows 10 UWP 应用中获得流畅的设计? https://docs.microsoft.com/en-us/windows/uwp/style/acrylic
【问题讨论】:
-
因为页面顶部的大信息框显示“尚未发布”,我猜答案是“否”
标签: xamarin uwp xamarin.forms win-universal-app
我们能否使用 Xamarin.Forms 在 Windows 10 UWP 应用中获得流畅的设计? https://docs.microsoft.com/en-us/windows/uwp/style/acrylic
【问题讨论】:
标签: xamarin uwp xamarin.forms win-universal-app
Jason 在技术上是正确的,因为该功能尚未公开发布。但是,如果您在 Windows Insider Preview 程序中,您应该已经可以尝试了。这就是你需要的:
如果Windows.UI.Xaml.Media.AcrylicBrush 可以访问,您可以检查您的版本是否正确。
与 Xamarin.Forms 一起使用:我自己没有尝试过,但从技术上讲,它应该是可能的。您需要为定义 Acrylic 画笔并将其添加到控件(本示例中为网格)的 UWP 平台推出自定义渲染器。您还需要确保检查 XamlCompositionBrushBase 是否存在,并在不存在的情况下进行后备。
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 = Color.FromArgb(255, 202, 24, 37);
myBrush.FallbackColor = Color.FromArgb(255, 202, 24, 37);
myBrush.TintOpacity = 0.6;
grid.Fill = myBrush;
}
else
{
SolidColorBrush myBrush = new SolidColorBrush(Color.FromArgb(255, 202, 24, 37));
grid.Fill = myBrush;
}
此代码直接取自您链接到的article,但它应该可以在自定义渲染器中正常工作。
请注意,即使您可以使用它,API 也可能会发生重大变化,您将不得不一次又一次地重新设计您的解决方案。
【讨论】: