其他分享
首页 > 其他分享> > Xamarin.Forms 中的几个实用技巧

Xamarin.Forms 中的几个实用技巧

作者:互联网

启用XAML编译

在使用Xamarin.Forms新建内容XAML页时, 在类级别会出现声明的特性, 如下所示:

    [XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class ViewA : ContentView
    {
        public ViewA()
        {
            InitializeComponent();
        }
    }

那么该特性的作用是启用XAML编译, 这样在使用XAML时会大大提高应用中的性能, XAML 编译提供了很多好处:

默认情况下,在框架中禁用 XAML 编译。 但是,在新项目的模板中启用了它。 通过添加 XamlCompilation 属性,可以显式启用或禁用 (XamlCompilationOptions.Skip) 在程序集和类级别上。

XAML 可以根据需要使用 XAML 编译器 (XAMLC) 直接编译为中间语言 (IL)。

在程序及级别的声明, 这样就不必要在每个XAML类当中声明, 声明的位置可以是任意位置, 一般来讲会放在比较明显的地方, 以便于统一管理, 声明如下:

[assembly: XamlCompilation(XamlCompilationOptions.Compile)]

使用编译绑定

编译绑定是一种在编译时告诉 Xamarin.Forms 绑定将使用的数据类型的方法。这意味着 Xamarin.Forms 不必在运行时使用任何反射来解析数据绑定。通过对任何项使用特殊属性,可以启用已编译的绑定。x:DataTypeVisualElement

使用编译绑定为你和你的应用提供了一些主要好处:

  1. 所有绑定表达式的编译时验证。
  2. 性能改进,因为绑定在编译时解析。

编译时验证, 可以在编译阶段检查非法声明、拼写错误。这是将收到错误。

下面的案例中, 试图将不存在的属性 Names 绑定在Lable上, 这是编译会提出相应的错误。

在此应用中,我们有一个数据绑定到 的 ListView。我们可以引入 的命名空间

xmlns:local="clr-namespace:App4"

然后, 给DataTemplate 指定其类型:

		<ListView ItemsSource="{Binding Students}">
            <ListView.ItemTemplate>
                <DataTemplate x:DataType="local:Student">
                    <Label Text="{Binding Name}" />
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

使用编译绑定的前提, 你需要启用XAML 编译选项

使用嵌入字体

从 Xamarin.Forms 4.5 开始,我们将让您的生活再次更轻松一些。只需三个简单的步骤,我们将添加一种可在iOS,Android和UWP中使用的字体。

1. 将字体文件(otf 或 ttf)添加到共享项目并将其标记为嵌入资源

只需将字体文件添加到项目中的任何文件夹,然后将“生成操作”设置为 。Samantha.ttf EmbeddedResource

2. 在共享项目中添加导出字体属性

最明显的地方是你的或.但是,由于该属性将在程序集级别注册此属性,因此您可以将其放在任何位置。属性的放置取决于您希望它对其他/未来开发人员的可见程度。App.xaml.cs``AssemblyInfo.cs

命名空间之外的任何位置都可以使用。只需添加此内容:

[assembly: ExportFont("`Samantha.ttf", Alias = "`Samantha")]

就是这样!现在,你已准备好在应用中使用字体。通过代码或 XAML,直接在控件上或通过样式。请注意,您不再需要查找后记字体名称。只需使用字体文件名即可。这将适用于所有平台!

<Label Text="Welcome to Xamarin.Forms!" 
    FontFamily="Samantha" FontSize="50" 
    HorizontalOptions="Center" VerticalOptions="CenterAndExpand" />

标签:Xamarin,实用技巧,XAML,绑定,Forms,编译,字体,使用
来源: https://www.cnblogs.com/zh7791/p/16143054.html