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
从这里拿的
https://github.com/XLabs/Xamarin-Forms-Labs/blob/master/Samples/XLabs.Sample/ViewModel/CameraViewModel.cs
4. View (portable)
Photo.xaml
<?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: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();
时间: 2024-10-06 22:38:25