📅  最后修改于: 2021-01-11 16:11:08             🧑  作者: Mango
跨平台移动应用程序的构建块是Xamarin.Forms视图。视图是用户界面对象,例如标签,按钮和滑块,在其他编程环境中称为控件或窗口小部件。
视图可以分为几类:
Xamarin.Forms具有三个用于处理文本的主要视图:
标签:标签视图用于显示文本。我们可以显示多行文本或单行文本。标签可以显示带有内联使用的多种格式选项的文本。当标签视图不能排成一行时,标签视图可以包装或截断文本。
MainPage.Xaml
输入:输入用于接受单行文本。 Entry提供对颜色和字体的控制。 Entry具有密码模式,可以显示占位符文本,直到我们输入文本为止。
MainPage.XAML
编辑器:编辑器用于输入多行文本输入。编辑器提供了颜色和字体的控件。像其他文本呈现视图一样,编辑器将显示text属性。编辑器可用于设置和读取编辑器显示的文本。
Xamarin.Forms使用图像视图在页面上显示图像。它有两个重要页面:
在Xamarin上显示图像。表格我们应该必须遵循以下步骤:
在这里,我们将通过文件名添加图像。为此,我们首先必须下载图像(“ jpg图像下载”)。从保存文件的文件夹中复制图像,然后将其粘贴到一个drawable文件夹中,为此,我们必须遵循以下步骤: Android-> Resources-> Drawable 。
// In the source we have to give the name of the image file.
输出量
现在,我们将学习如何在后端代码中使用图像。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace Label
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
Myimage.Source = ImageSource.FromFile("nature.jpg");
}
}
输出量
可以从本地文件,嵌入式资源或下载图像。
乍看之下,BoxView看起来似乎很简单,但是它具有多种用途,可以产生通常只有矢量图形才能实现的几乎所有视觉效果。
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace Label
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
// Myimage.Source = ImageSource.FromResource("Label.images.hey.jpg");
}
private void AbsoluteLayout_SizeChanged(object sender, EventArgs e)
{
}
private void Button_Clicked(object sender, EventArgs e)
{
var url = "http://"+urlEntry.Text;
BROWSER.Source = url;
}
}
}
当我们单击一个按钮时,它会响应并在应用程序中执行特定任务。在所有Xamarin.Forms按钮中都扮演着重要的角色。该命令后,该按钮显示短文本字符串。按钮也可以显示位图图像或文本和图像的组合。为了启动命令,用户用手指或鼠标按下按钮。
MainPage.XAML
在button_click后面编码,按钮将计算按钮被按下的次数。
MainPage.XAML.CS
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace MapView1
{
public partial class MainPage : ContentPage
{
static int ClickTotal;
public MainPage()
{
InitializeComponent();
}
private void Button_Clicked(object sender, EventArgs e)
{
ClickTotal += 1;
label.Text = String.Format("{0} button click{1}", ClickTotal, ClickTotal == 1 ? "" : "s");
}
}
}
输出:
ImageButton显示图像并响应点击或单击,从而指示应用程序执行特定任务。
ImageButton View将Button视图和Image视图组合在一起,以创建内容为图像的按钮。当我们用手指按下按钮或用鼠标单击它时,它将为应用程序执行特定任务。
设置图像来源
ImageButton定义了一个源属性,该属性应配置为在按钮上显示图像
它是Xamarin.Forms的UI元素的一部分。它用于从列表或网页或任何内容中搜索数据。我们可以放置搜索栏以从网络或其他任何地方进行搜索。通常,我们在Google主页或任何搜索引擎上使用搜索栏。
在这里,我们将按照以下步骤进行编码:
首先,我们将创建Xamarin.Forms项目。在这里,我们将创建一个应用程序,并在XAML文件上创建一个ListView和搜索栏。在这里,我们可以使用堆栈布局,并在堆栈布局中添加搜索栏和列表视图。搜索栏将位于列表的顶部。
MainPage.Xaml
现在,我们将创建一个包含两个属性Name和NUM的类,如下所示:
namespace imagebutton1
{
public class Contacts
{
public string Name { get; set; }
public string Num { get; set; }
public string imgsource { get; set; }
}
}
现在,我们将绑定添加到listview的文本单元格。
在这里,创建类并完成绑定。现在,我们将在Xaml.CS文件中进行编码。
要添加数据的是ListView和要搜索的功能栏。在这里,我们首先创建一个联系人类,然后对其进行初始化并添加一些新数据。之后,我们将ListView的项目源设置为联系人列表。
将数据添加到我们的ListView的代码:
public List tempdata;
public MainPage()
{
InitializeComponent();
data();
list.ItemsSource = tempdata;
}
public void data()
{
// all the temp data
tempdata = new List {
new Contacts(){ Name = "Shaily", Num = "2323423"},
new Contacts(){ Name = "Vishi", Num = "23423"},
new Contacts(){ Name = "Vaishali", Num = "233423423"},
new Contacts(){ Name = "AkshayILU", Num = "2423"},
new Contacts(){ Name = "Aman", Num = "323423"},
new Contacts(){ Name = "Arpita", Num = "2323423"},
new Contacts(){ Name = "Himanshu", Num = "2323423"},
new Contacts(){ Name = "Arvind", Num = "2323423"},
new Contacts(){ Name = "Neetu", Num = "2323423"},
new Contacts(){ Name = "etc", Num = "2323423"},
};
}
在这里,我们将使搜索栏的文本更改功能成为事件处理程序,如下所示:
private void SearchBar_TextChanged(object sender, TextChangedEventArgs e)
{
//that's all you need to do a search
if (string.IsNullOrEmpty(e.NewTextValue))
{
list.ItemsSource = tempdata;
}
else
{
list.ItemsSource = tempdata.Where(x => x.Name.StartsWith(e.NewTextValue));
}
}
只要更改搜索栏中的文本,它就可以在两种可能的情况下工作。如果文本为null或为空,我们将list的项目源设置为临时数据。临时数据包含所有数据的列表。否则,可以根据LINQ查询更改列表的项目来源。此查询对临时数据起作用,并在字符中找到与名称的起始值匹配的给定文本。现在,我们将看到搜索一些数据:
MainPage.XAML
MainPage.XAML.CS
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace imagebutton1
{
public partial class MainPage : ContentPage
{
public List tempdata;
public MainPage()
{
InitializeComponent();
data();
list.ItemsSource = tempdata;
}
public void data()
{
// all the temp data
tempdata = new List {
new Contacts(){ Name = "Shaily", Num = "2323423"},
new Contacts(){ Name = "Vishi", Num = "23423"},
new Contacts(){ Name = "Vaishali", Num = "233423423"},
new Contacts(){ Name = "AkshayILU", Num = "2423"},
new Contacts(){ Name = "Aman", Num = "323423"},
new Contacts(){ Name = "Arpita", Num = "2323423"},
new Contacts(){ Name = "Himanshu", Num = "2323423"},
new Contacts(){ Name = "Arvind", Num = "2323423"},
new Contacts(){ Name = "Neetu", Num = "2323423"},
new Contacts(){ Name = "etc", Num = "2323423"},
};
}
private void SearchBar_TextChanged(object sender, TextChangedEventArgs e)
{
//that's all you need to do a search
if (string.IsNullOrEmpty(e.NewTextValue))
{
list.ItemsSource = tempdata;
}
else
{
list.ItemsSource = tempdata.Where(x => x.Name.StartsWith(e.NewTextValue));
}
}
}
}
ListView是用于呈现数据列表的视图,尤其是需要滚动的长列表。 Xamarin.Forms提供ListView控件,该控件可用于显示可滚动的数据列表。 ListView控件最适合同类数据。
MainPage.XAML
Baboon
Capuchin Monkey
Blue Monkey
Squirrel Monkey
Golden Lion Tamarin
Howler Monkey
Japanese Macaque
这段代码定义了由StackLayout中的ListView组成的页面的用户界面。 ListView.ItemSource属性指定要显示的项目。
输出量
填充数据
在这里,我们将使用ItemSource属性填充数据,该属性的类型为IEnumerable 。在这里,我们将用存储在其中的对象的对象集合中的数据填充ListView。
猴子课会加
Monkey.cs
namespace ListView
{
class Monkey
{
public string Name { get; set; }
public string Location { get; set; }
public string ImageUrl { get; set; }
public override string ToString()
{
return Name;
}
}
}
该代码定义了Monkey对象,该对象存储代表猴子的图像的名称,位置和URL。同样,该类重写ToString方法以返回name属性。
Xamarin.Form视图允许用户选择日期。 Xamarin.Forms DatePicker调用平台的日期选择器控件,该控件使用户可以选择日期。 DatePicker定义了八个属性。
MainPage.XAML
Xamarin.Forms视图允许用户选择时间。 Xamarin.Forms TimePicker调用平台时间选择器控件,并使用户可以选择时间。
MainPage.XAML
MainPage.XAML.CS
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace App15
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private void Button_Clicked(object sender, EventArgs e)
{
var date = dp.Date;
var time = tp.Time;
details.Text = string.Format("Date:{0}\n Time:{1}", date, time);
}
}
}
输出值
TableView是用于显示数据或选项的可滚动列表的视图,其中存在不共享同一模板的行。 TableView没有ItemSource的概念,因此在这里我们将手动添加项目。
结构: TableView中的元素按部分组织。 TableView的根是TableRoot,它是一个或多个TableSection实例的父级。每个TableSection由标题和一个或多个ViewCell案例组成。
MainPage.XAML
输出量