前言

  Xamarin.Forms 为 .NET 开发人员提供一个完整的跨平台 UI 工具包。 在 Visual Studio 中使用 C# 生成完全本机的 Android、iOS 和通用 Windows 平台应用,但是在国内用的很少教程也很少,用会了也很方便。

模拟器选择

  强烈建议不要使用VS自带的模拟器,就是很卡的那种,这里博主推荐使用夜神模拟器。

  连接夜神模拟器步骤如下:

  1).首先查到夜神模拟器的端口,开的第一模拟器端口默认是62001这里指的是本地。

  2).然后打开VS中的ADB控制台:输入adb.exe connect 127.0.0.1:62001[提示connected说明连接成功]

  3)sdk的选择目前谷歌最新的是9.0看个人是否需要选择安装。

Xamarin.Forms布局

  XF一共提供了5种布局分别是StackLayout,RelativeLayout,AbsoluteLayout,Grid,ScrollView

  1).SL布局适用一般的布局。

  2).RL布局适用叠加。

  3).AL布局适用遮罩。

  4).Gd布局就是栅栏,典型例子计算器。

  5).SV布局就是屏幕可以下拉的。

StackLayout布局

  范例1:

  

  

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:MusicCloud"
x:Class="MusicCloud.MainPage">
<ContentPage.Padding>
<OnPlatform x:TypeArguments="Thickness"
iOS="0,20,0,0"
Android="0,20,0,0"/>
</ContentPage.Padding>
<StackLayout VerticalOptions="Center" BindingContext="{Binding Source={x:Reference sli}}">
<Label
VerticalOptions="CenterAndExpand"
HorizontalOptions="CenterAndExpand"
Text="{Binding Path=Value,StringFormat='值:{0:F2}'}" />
<Label
VerticalOptions="CenterAndExpand"
Opacity="{Binding Path=Value}"
HorizontalOptions="CenterAndExpand"
Text="改变透明度" />
<Slider x:Name="sli" Maximum="1"></Slider>
</StackLayout>
</ContentPage>
Opacity="{Binding Path=Value}" 其中path可以省略,前提是Bind只有一个参数。
范例2:

当点击登录后进入下个页面

 <?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
BackgroundColor="Blue"
x:Class="MusicCloud.StackLayoutTrain.StackLayoutTest">
<ContentPage.Content>
<!--VerticalOptions 垂直属性-->
<!--HorizontalOptions 水平属性-->
<StackLayout VerticalOptions="Center" Spacing="20">
<Label
Text="欢迎demo"
FontSize="26"
TextColor="#FFF"
HorizontalOptions="Center"/>
<Label
Text="Edna"
HorizontalOptions="Center"
TextColor="#FFF"
FontSize="16"/>
<StackLayout Orientation="Horizontal" HorizontalOptions="Center" Spacing="50">
<Button
BackgroundColor="#FFF"
HorizontalOptions="Center"
Text="登录"
Clicked="Ok_Clicked"/>
<Button
BackgroundColor="#FFF"
HorizontalOptions="Center"
Text="注册"/>
</StackLayout>
</StackLayout>
</ContentPage.Content>
</ContentPage>

登录事件

 private async void Ok_Clicked(object sender, EventArgs e)
{
await Navigation.PushModalAsync(new StackLayoutTest_Two());
}
 <?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MusicCloud.StackLayoutTrain.StackLayoutTest_Two">
<ContentPage.Padding>
<OnPlatform
Android="0,20,0,0"
x:TypeArguments="Thickness"/>
</ContentPage.Padding>
<ContentPage.Content>
<StackLayout Spacing="10">
<Label Text="周家庄地震安置点"/>
<Image
Source="http://n.sinaimg.cn/default/1_img/upload/3933d981/713/w930h583/20181217/xvSU-hqhtqsp1549885.jpg"
Aspect="AspectFill"/>
<StackLayout Orientation="Horizontal" HorizontalOptions="Start" Spacing="10">
<Button Text="点赞" HorizontalOptions="Start"/>
<Button Text="留言" HorizontalOptions="Start"/>
<Button Text="分享" HorizontalOptions="Start"/>
</StackLayout>
<StackLayout >
<BoxView BackgroundColor="Gray" HeightRequest="1"/>
<StackLayout Padding="10" Orientation="Vertical">
<Label Text="800赞" FontAttributes="Bold"/>
<Label Text="浙江人很了不起。当时社会上流传着“四千精神”:走遍千山万水,说尽千言万语,想尽千方百计,历经千辛万苦。
而浙江的乡镇企业就是这样从各种渠道寻求发展。当时浙江煤炭、钢材很短缺,山西粮食很短缺,浙江人就把浙江的大米用火车拉去换山西的煤炭,把舟山的黄鱼和带鱼拉去北方换钢材。步鑫生讲得很形象,他说,国有企业是头“猪”,喂它多少吃多少;大集体企业是只“鸡”,撒一点米,没吃饱它自己还会去找吃的;乡镇企业是只“麻雀”,完全是靠自己去找吃的。"/>
</StackLayout>
</StackLayout>
</StackLayout>
</ContentPage.Content>
</ContentPage>

初次写Xamarin.forms不对的地方欢迎指正,共同交流学习。

Xamarin.Forms初始的更多相关文章

  1. Xamarin.Forms 简介

    An Introduction to Xamarin.Forms 来源:http://developer.xamarin.com/guides/cross-platform/xamarin-forms ...

  2. Xamarin.Forms入门-使用 Xamarin.Forms 来创建跨平台的用户界面

    Xamarin.Forms 是一个跨平台的.基于原生控件的UI工具包,开发人员可以轻松的创建适用于 Android,iOS 以及 Windows Phone的用户界面.Xamarin.Forms 通过 ...

  3. Xamarin.Forms——尺寸大小(五 Dealing with sizes)

    如之前所见的大量可视化元素均有自己的尺寸大小: iOS的状态栏高度为20,所以我们需要调整iOS的页面的Padding值,留出这个高度. BoxView设置它的默认宽度和高度为40. Frame的默认 ...

  4. Xamarin.Forms跨平台开发入门-第二部分:深入解析

    英文原文: https://developer.xamarin.com/guides/xamarin-forms/getting-started/hello-xamarin-forms/deepdiv ...

  5. Xamarin.Forms移动开发系列4 :XAML基础

    摘要 本文介绍Xamarin.Forms创建用户界面的语言:XAML基础部分. 前言 本文介绍Xamarin.Forms定义用户界面的语言:XAML. 本篇篇幅较长,主要讲述XAML语法,以及对其他基 ...

  6. Xamarin.Forms移动开发系列3:项目剖析

    摘要 本文主要进行Xamarin.Forms应用程序剖析. 前言 本文介绍Xamarin.Forms应用程序剖析. 由于本系列重点研究对象为Xamarin.Forms,所以对Xamarin.Andro ...

  7. Xamarin.Forms应用程序基础知识

    生命周期 在 Android 上,若主活动的 [Activity()] 属性缺少 ConfigurationChanges = ConfigChanges.ScreenSize | ConfigCha ...

  8. Xamarin.Forms快速入门-深入探讨

    官网链接 项目介绍 以Notes项目为例,The Notes application consists of one solution containing four projects, as sho ...

  9. xamarin.forms新建项目android编译错误

    vs2015 update3 新建的xamarin.forms项目中的android项目编译错误.提示缺少android_m2repository_r22.zip,96659D653BDE0FAEDB ...

随机推荐

  1. android clipRect Op.xxx各个参数理解

    有点小啰嗦的一篇学习笔记,可以直接看最后得出的结论:前面的各种图片和说明都是为最后的结论服务的 1)剪切:和平常画图工具剪切的作用一样,在画布上剪切一个区域,比如剪切一个Rect区域,画布canvas ...

  2. jmeter的master、slave模型启动方法

    机器A为master:机器B为slave:可以一个master挂多个slave,方法就是-R参数后面跟一个逗号分割的IP列表 slave启动命令:./jmeter-server -Djava.rmi. ...

  3. log4net日志组件经验分享

    引自log4net日志组件经验分享 我们在开发WEB项目的时候,经常会出现这样的情况:在本地调试都是正常的,但是部署到服务器上就不行了.一般出现这种情况很大一部分原因是因为服务的环境和本地不同,数据库 ...

  4. 小谈Vim打开文件开头的&lt;feff&gt;

    在本地Windows机上开发的PHP程序上传到linuxserver上后,通过浏览器訪问对应接口.发现返回的数据前多了一个莫名的字符'-',甚为不解.之后通过网络抓包的方式,查看到接口返回数据前多了 ...

  5. C++中sizeof(struct)怎么计算?(转)

    struct为空时,大小为1. 1. sizeof应用在结构上的情况 请看下面的结构: struct MyStruct { double dda1; char dda; int type; }; 对结 ...

  6. VueJS数据绑定文本显示:{{message}}

    HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...

  7. 转:scanf的用法

    https://blog.csdn.net/u012421456/article/details/18501309 scanf()[通过键盘将数据输入到变量中] 它有两种用法: 用法一: scanf( ...

  8. Swift的两个小窍门

    一:查看Swift版本号(How do I see which version of Swift I’m using in Xcode?) 终端下输入:xcrun swift -version(in ...

  9. node JS 微信开发

    JS-SDK 要点 微信测试号; 扫码登录;无需认证(只是名称统一为微信测试号)http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/logi ...

  10. iOS移动开发周报-第19期

    iOS移动开发周报-第19期 前言 欢迎国内的iOS同行或技术作者向我提交周报线索,线索可以是新闻.教程.开发工具或开源项目,将相关文章的简介和链接在微博上发布并 @唐巧_boy 即可. [摘要]:本 ...