近期因为工作关系开始使用Xamarin,翻译了两篇国外的介绍3.0新特性的文章,供大家参考。
第一篇文章来自Xamarin官网,原文地址:https://blog.xamarin.com/xamarin-forms-3-0-released/
第二篇文章来自一位MVP:Charlin Agramonte,原文地址:https://xamgirl.com/exploring-new-properties-in-xamarin-forms-3-0/
试试Xamarin.Forms 3.0的最新版本!
我们很高兴为您带来我们最新的Xamarin.Forms 3.0版稳定版本。 这是我们迄今为止发布速度最快,功能最丰富的版本,还包括对Xamarin技术栈的极大改进,例如Visual Studio 2017中最新的XAML IntelliSense体验。
当您升级到3.0时,您会发现新的布局和样式功能,这将改善您构建UI的方式,包括Visual State Manager,Flex布局,样式表和从右至左的支持等等。 除了这些细节的优化外,XAML编译还特别关注构建时间的优化,在某些基准测试中将缩短多达88%。
Xamarin.Forms 3.0Xamarin.Forms 3.0的发布也包含了重要的社区贡献。 这篇文章包含了每个功能的简要介绍以及一系列有用的资源,可以帮助您快速完成工作。
Visual State ManagerVisual State Manager在其他XAML平台上是众所周知的,我们很高兴将其引入到 Xamarin.Forms 3.0中。 您现在可以在XAML或C#中使用声明为布局和控件定义各种状态,并轻松更新您的UI。 这是一个处理纵向和横向切换的相机视图:
要根据方向更改更改捕获按钮,关闭按钮和最后一个图像按钮的位置,请使用Visual State Manager。 首先,在您的页面资源中定义您的状态:
<ContentPage.Resources> <Style TargetType="FlexLayout"> <Setter Property="VisualStateManager.VisualStateGroups"> <VisualStateGroupList x:Name="CommonStates"> <VisualStateGroup> <VisualState x:Name="Portrait"> <VisualState.Setters> <Setter Property="Direction" Value="Column"/> <Setter Property="Margin"> <OnPlatform x:TypeArguments="Thickness" Default="0"> <On Platform="iOS" Value="0,30"/> </OnPlatform> </Setter> </VisualState.Setters> </VisualState> <VisualState x:Name="Horizontal"> <VisualState.Setters> <Setter Property="Direction" Value="Row"/> <Setter Property="Margin"> <OnPlatform x:TypeArguments="Thickness" Default="0"> <On Platform="iOS" Value="30,0"/> </OnPlatform> </Setter> </VisualState.Setters> </VisualState> </VisualStateGroup> </VisualStateGroupList> </Setter> </Style> <Style TargetType="Image"> <Setter Property="VisualStateManager.VisualStateGroups"> <VisualStateGroupList x:Name="CommonStates"> <VisualStateGroup> <VisualState x:Name="Portrait"> <VisualState.Setters> <Setter Property="AbsoluteLayout.LayoutBounds" Value="30, 0.5, 40, 40"/> <Setter Property="AbsoluteLayout.LayoutFlags" Value="YProportional"/> </VisualState.Setters> </VisualState> <VisualState x:Name="Horizontal"> <VisualState.Setters> <Setter Property="AbsoluteLayout.LayoutBounds" Value="0.5, 0.9, 40, 40"/> <Setter Property="AbsoluteLayout.LayoutFlags" Value="PositionProportional"/> </VisualState.Setters> </VisualState> </VisualStateGroup> </VisualStateGroupList> </Setter> </Style> </ContentPage.Resources>