发布:2023/12/7 15:40:52作者:大数据 来源:大数据 浏览次数:424
属性的设置等效
1 2 3 4 5 |
<Label Text="Hello, XAML!" VerticalOptions="Center" FontAttributes="Bold" FontSize="Large" TextColor="Aqua" /> |
1 2 3 4 5 6 7 8 |
<Label Text="Hello, XAML!" VerticalOptions="Center" FontAttributes="Bold" FontSize="Large"> <Label.TextColor> Aqua </Label.TextColor> </Label> |
虽然第一种属性方式简单,但是,当属性的值过于复杂以致无法表示为简单字符串时,属性元素语法就变得至关重要。 在属性元素标记中,可以实例化其他对象并设置其属性。 例如,可以使用属性设置将属性(例如)显式设置 VerticalOptions
为 LayoutOptions
值:
1 2 3 4 5 6 |
<Label> ... <Label.VerticalOptions> <LayoutOptions Alignment="Center" /> </Label.VerticalOptions> </Label> |
另一个示例: Grid
有两个名为和的属性 RowDefinitions
ColumnDefinitions
。 这两个属性的类型为 RowDefinitionCollection
和 ColumnDefinitionCollection
,它们是 RowDefinition
和对象的集合 ColumnDefinition
。 需要使用属性元素语法来设置这些集合。
下面是类的 XAML 文件的开头 GridDemoPage
,其中显示了和集合的属性元素标记 RowDefinitions
ColumnDefinitions
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="XamlSamples.GridDemoPage" Title="Grid Demo Page"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> <RowDefinition Height="100" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="100" /> </Grid.ColumnDefinitions> ... </Grid> </ContentPage> |
https://docs.microsoft.com/zh-cn/xamarin/xamarin-forms/xaml/xaml-basics/essential-xaml-syntax
页面共享资源,若要在页面上使用资源字典,请包含一对 Resources
属性元素标记。 最方便的方法是将其放在页面顶部,还需要显式包含 ResourceDictionary
标记:x:StaticResource静态变量设置两种办法简化与默认
1 2 3 4 5 6 7 8 9 10 11 |
<RelativeLayout> <RelativeLayout.Resources> <ResourceDictionary> <Color x:Key="RedColor">Red</Color> <sys:String x:Key="MyString">mystring</sys:String> <x:Double x:Key="MyFloat">22.3</x:Double> </ResourceDictionary> </RelativeLayout.Resources> <Button Text="{x:StaticResource Key=MyString}" BackgroundColor="{x:StaticResource Key=RedColor}"/> <Button Text="{StaticResource Key=MyString}" BackgroundColor="{StaticResource RedColor}"/> </RelativeLayout> |
x:Static
标记扩展还可以从自己的代码中引用静态字段或属性。 必须为静态
1 2 3 4 5 6 7 8 9 10 11 12 13 |
using System; using System.Collections.Generic; using System.Drawing; using System.Text; namespace App3BottomDrawer.ViewModel { static class StaticConstants { public static Color MyColor { get; set; } = Color.Red; public static readonly string MyName = "Jone is my1"; } } |
1 2 3 |
xmlns:constant="clr-namespace:App3BottomDrawer.ViewModel" <Button Text="{x:Static constant:StaticConstants.MyName}" TextColor="{Static constant:StaticConstants.MyColor}" /> |
命名空间constant为前缀可以自定名称,一般为local,当然根据喜好自己定义
命名空间前缀访问系统System下的对象DateTime获取当前时间
1 2 |
xmlns:sys="clr-namespace:System;assembly=netstandard" <Entry Text="{Static sys:DateTime.Now}"/> |
数据绑定BindingContext常用方法
1 2 3 |
<ContentPage.BindingContext> <命名空间前缀:类名 /> </ContentPage.BindingContext> |
1 2 3 4 5 6 7 8 9 10 11 12 |
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:viewModels="clr-namespace:XamarinPOC.ViewModel; assembly=XamarinPOC.ViewModel" x:Class="XamarinPOC.Summary" Title="Summary List"> <ContentPage.BindingContext> <viewModels:SummaryViewModel/> </ContentPage.BindingContext> <StackLayout> <Label Text="{Binding test}"/> </StackLayout> </ContentPage> |
或者在类名构造函数中绑定
1 2 3 4 5 6 7 8 9 10 11 12 |
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:sys="clr-namespace:System;assembly=netstandard" x:Class="XamarinPOC.Summary" Title="Summary List"> <ContentPage.BindingContext> <sys:DateTime/> </ContentPage.BindingContext> <StackLayout> <Label Text="{Binding Date}"/> </StackLayout> </ContentPage> |
© Copyright 2014 - 2024 柏港建站平台 ejk5.com. 渝ICP备16000791号-4