1. 安装nuget
Xamarin.Forms
XLabs.Forms
2. MainActivity.cs (Android)
public class MainActivity : XFormsApplicationDroid
{
/// <summary>
/// Called when [create].
/// </summary>
/// <param name="bundle">The bundle.</param>
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
if (!Resolver.IsSet)
{
this.SetIoc();
}
else
{
var app = Resolver.Resolve<IXFormsApp>() as IXFormsApp<XFormsApplicationDroid>;
if (app != null) app.AppContext = this;
}
Xamarin.Forms.Forms.Init(this, bundle);
this.LoadApplication(new App());
}
/// <summary>
/// Sets the IoC.
/// </summary>
private void SetIoc()
{
var resolverContainer = new SimpleContainer();
var app = new XFormsAppDroid();
app.Init(this);
resolverContainer.Register<IDevice>(t => AndroidDevice.CurrentDevice)
.Register<IMediaPicker, MediaPicker>();
Resolver.SetResolver(resolverContainer.GetResolver());
}
3. ViewModel (Portable)
CamaraViewModel.cs
4. View (portable)
Photo.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http:///schemas/2014/forms"
xmlns:x="http:///winfx/2009/xaml"
xmlns:viewModels="clr-namespace:PhotoSample.ViewModels;assembly=PhotoSample"
x:Class="PhotoSample.Views.Photo">
<ContentPage.BindingContext>
<viewModels:CameraViewModel />
</ContentPage.BindingContext>
<StackLayout>
<Button Text="Take Picture" Command="{Binding TakePictureCommand}" />
<Button Text="Select Image from Picture Library" Command="{Binding SelectPictureCommand}" />
<Button Text="Select Video from Picture Library " Command="{Binding SelectVideoCommand}" />
<Image Source="{Binding ImageSource}" VerticalOptions="CenterAndExpand" />
<Entry Text="{Binding VideoInfo}" VerticalOptions="CenterAndExpand" />
</StackLayout>
</ContentPage>
在App.cs (portable) 初始view指向photo即可
MainPage = new Photo();