前言

  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. Apple激活日期查询

    需要输入的信息为苹果产品的序列号 查看您的保修服务和支持期限 - Apple 支持 或者通过果粉查询网站获取结果

  2. 【android】getDimension()、getDimensionPixelOffset()和getDimensionPixelSize()区别详解

    在自定义控件中使用自定义属性时,经常需要使用java代码获取在xml中定义的尺寸,相关有以下三个函数 getDimension() getDimensionPixelOffset() getDimen ...

  3. 分布式版本号控制系统Git(二):github

    前言 但凡是喜欢研究技术,或者听大牛们说起过的,都应该至少是听过github这个东西.详细就不介绍了.不了解的能够去了解了解,最基本的功能当然是代码托管啦,上面有各种各样的大牛写的项目. 另外这一章不 ...

  4. npm升级所有可更新包

    使用npm管理node的包,可以使用npm update <name>对单个包升级,对于npm的版本大于 2.6.1,可以使用命令: npm install -g 升级全局的本地包. 对于 ...

  5. 关于CUDA两种API:Runtime API 和 Driver API

                 CUDA 眼下有两种不同的 API:Runtime API 和 Driver API,两种 API 各有其适用的范围. 高级API(cuda_runtime.h)是一种C++ ...

  6. xpages很不错的demo

    之前有上传了xpages的样例,如今统一把地址发出来,希望对学习xpages的朋友有帮助 1)这是主要的教程,在没有扩展库之前的教程,假设能熟练使用这个样例已经够了,加上你有html,js,css的功 ...

  7. odoo多币种

    配置 启用多币种特性,并设置本位币     Gain exchange rate account 汇损收益科目,一般为财务费用下的二级科目 Loss exchange rate account 汇损损 ...

  8. win7自带照片查看器

    win10如何找回自带的照片查看器   方法/步骤   1 首先,我们打开一个记事本,可以点击win+r打开运行框,然后在运行框中输入notepad.或者在桌面右键点击里面的新建,然后在新建中找到文本 ...

  9. cocos2dx-3.1 接入多盟广告sdk+Android (2)

    上篇,把基本工作做完了,接下来,在C++下加入代码. 1.打开win32下的project,加入一个类.DomobAd.代码例如以下, <pre name="code" cl ...

  10. iOS菜鸟学习--怎样避免两个button同一时候响应

    在測试应用时.有时会变态的将两个UIButton同一时候按住来測试.结果就是两个button会同一时候响应,会出现同一时候push两个viewcontroller等非正常情况.为了避免用户误操作造成这 ...