コード例 #1
0
ファイル: PhotosPage.xaml.cs プロジェクト: KiBee/GIBDD
        public PhotosPage(MainModel mainModel)
        {
            _MainModel = mainModel;

            if (_MainModel.selectedPhotos == null)
            {
                _MainModel.selectedPhotos = new ObservableCollection <Photo>()
                {
                }
            }
            ;

            InitializeComponent();

            BindingContext = this;

            if (_MainModel.selectedPhotos != null)
            {
                DeletePhoto = new DeletePhoto(_MainModel, ContinueButton);
                ContinueButton.IsEnabled = true;
            }

            takePhoto.Clicked += async(sender, args) =>
            {
                var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
                {
                    Directory     = "Photos",
                    SaveToAlbum   = true,
                    PhotoSize     = PhotoSize.Full,
                    DefaultCamera = CameraDevice.Front
                });

                if (file == null)
                {
                    return;
                }

                if (_MainModel.selectedPhotos == null)
                {
                    _MainModel.selectedPhotos = new ObservableCollection <Photo>()
                    {
                    }
                }
                ;

                _MainModel.selectedPhotos.Add(new Photo
                {
                    Image = ImageSource.FromStream(() =>
                    {
                        var stream = file.GetStream();
                        return(stream);
                    }),
                });
                ContinueButton.IsEnabled = true;

                DeletePhoto = new DeletePhoto(_MainModel, ContinueButton);
            };

            pickPhoto.Clicked += async(sender, args) =>
            {
                var file = await CrossMedia.Current.PickPhotoAsync(new PickMediaOptions
                {
                    PhotoSize = PhotoSize.Full,
                });


                if (file == null)
                {
                    return;
                }

                if (_MainModel.selectedPhotos == null)
                {
                    _MainModel.selectedPhotos = new ObservableCollection <Photo>()
                    {
                    }
                }
                ;

                _MainModel.selectedPhotos.Add(new Photo
                {
                    Image = ImageSource.FromStream(() =>
                    {
                        var stream = file.GetStream();
                        return(stream);
                    }),
                });
                ContinueButton.IsEnabled = true;
                DeletePhoto = new DeletePhoto(_MainModel, ContinueButton);
            };
        }

        async private void ContinueClicked(object sender, EventArgs e)
コード例 #2
0
        public PhotosPage(MainModel mainModel)
        {
            _MainModel = mainModel;

            if (_MainModel.selectedPhotos == null)
            {
                _MainModel.selectedPhotos = new ObservableCollection <Photo>()
                {
                }
            }
            ;

            InitializeComponent();

            BindingContext = this;

            if (_MainModel.selectedPhotos != null)
            {
                DeletePhoto = new DeletePhoto(_MainModel, ContinueButton);
                ContinueButton.IsEnabled = true;
            }

            takePhoto.Clicked += async(sender, args) =>
            {
                if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
                {
                    await DisplayAlert("No Camera", ":( No camera available.", "OK");

                    return;
                }

                var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
                {
                    Directory     = "Photos",
                    SaveToAlbum   = true,
                    PhotoSize     = PhotoSize.Full,
                    DefaultCamera = CameraDevice.Front
                });

                if (file == null)
                {
                    return;
                }

                if (_MainModel.selectedPhotos == null)
                {
                    _MainModel.selectedPhotos = new ObservableCollection <Photo>()
                    {
                    }
                }
                ;

                _MainModel.selectedPhotos.Add(new Photo
                {
                    Image = ImageSource.FromStream(() =>
                    {
                        var stream = file.GetStream();
                        return(stream);
                    }),
                    Name = file.Path.Split(new char[] { '\\', '/' }).Last()
                });
                ContinueButton.IsEnabled = true;

                DeletePhoto = new DeletePhoto(_MainModel, ContinueButton);
            };

            pickPhoto.Clicked += async(sender, args) =>
            {
                if (!CrossMedia.Current.IsPickPhotoSupported)
                {
                    await DisplayAlert("Photos Not Supported", ":( Permission not granted to photos.", "OK");

                    return;
                }
                var file = await CrossMedia.Current.PickPhotoAsync(new PickMediaOptions
                {
                    PhotoSize = PhotoSize.Full,
                });


                if (file == null)
                {
                    return;
                }

                if (_MainModel.selectedPhotos == null)
                {
                    _MainModel.selectedPhotos = new ObservableCollection <Photo>()
                    {
                    }
                }
                ;

                _MainModel.selectedPhotos.Add(new Photo
                {
                    Image = ImageSource.FromStream(() =>
                    {
                        var stream = file.GetStream();
                        return(stream);
                    }),
                    Name = file.Path.Split(new char[] { '\\', '/' }).Last()
                });
                ContinueButton.IsEnabled = true;
                DeletePhoto = new DeletePhoto(_MainModel, ContinueButton);
            };
        }

        async void OpenFullPhoto(object sender, ItemTappedEventArgs e)
        {
            Pages.FullImagePage fullImagePage = new Pages.FullImagePage((Photo)e.Item);
            await Navigation.PushAsync(fullImagePage);

            ((ListView)sender).SelectedItem = null;
        }

        async private void ContinueClicked(object sender, EventArgs e)