Nextrek
@ 799
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
using SmartCharging.Common; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using Windows.ApplicationModel.Activation; using Windows.ApplicationModel.Core; using Windows.ApplicationModel.Resources; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.Storage; using Windows.Storage.Pickers; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Media.Imaging; using Windows.UI.Xaml.Navigation; // The User Control item template is documented at http://go.microsoft.com/fwlink/?LinkId=234236 namespace SmartCharging { public sealed partial class MultipleImagePicker : UserControl { FileOpenPicker filePicker; CoreApplicationView view; public ObservableCollection<StorageFile> pickedImages; private ObservableCollection<Uri> initialImages; public List<Uri> initialRemovedImaged; ErrorHandler errorHandler; ResourceLoader resourceLoader; public MultipleImagePicker() { this.InitializeComponent(); this.pickedImages = new ObservableCollection<StorageFile>(); this.initialRemovedImaged = new List<Uri>(); errorHandler = new ErrorHandler(); this.PreviewList.ItemsSource = pickedImages; filePicker = new FileOpenPicker(); filePicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary; filePicker.ViewMode = PickerViewMode.Thumbnail; // Filter to include a sample subset of file types filePicker.FileTypeFilter.Clear(); filePicker.FileTypeFilter.Add(".bmp"); filePicker.FileTypeFilter.Add(".png"); filePicker.FileTypeFilter.Add(".jpeg"); filePicker.FileTypeFilter.Add(".jpg"); } private void view_Activated(CoreApplicationView sender, Windows.ApplicationModel.Activation.IActivatedEventArgs args1) { FileOpenPickerContinuationEventArgs args = args1 as FileOpenPickerContinuationEventArgs; if (args != null) { if (args.Files.Count == 0) return; view.Activated -= view_Activated; StorageFile storageFile = args.Files[0]; pickedImages.Add(storageFile); } } private void AppBarButton_Tapped(object sender, TappedRoutedEventArgs e) { Control c = sender as Control; StorageFile dc = c.DataContext as StorageFile; pickedImages.Remove(dc); } private void AppBarButton_Tapped2(object sender, TappedRoutedEventArgs e) { Control c = sender as Control; Uri dc = new Uri(c.DataContext as String); initialImages.Remove(dc); initialRemovedImaged.Add(dc); } private async void AddImagesButton_Tapped(object sender, TappedRoutedEventArgs e) { this.resourceLoader = ResourceLoader.GetForCurrentView("Resources"); int max = int.Parse(await Config.Instance.getConfigValueByKey("maxSiteImageNumber")); if (this.pickedImages.Count >= 8) { await errorHandler.ShowError(this.resourceLoader.GetString("MaximumNumberOfPhotosMessage")); } else { view = CoreApplication.GetCurrentView(); view.Activated += view_Activated; filePicker.PickSingleFileAndContinue(); } } private void Image_Tapped(object sender, TappedRoutedEventArgs e) { FlyoutBase.ShowAttachedFlyout((FrameworkElement)sender); } private void Image_Flyout_Tapped(object sender, TappedRoutedEventArgs e) { this.ImagePreviewFlyout2.Hide(); this.ImagePreviewFlyout3.Hide(); } public void setInitialImages(List<Uri> paths) { this.initialImages = new ObservableCollection<Uri>(paths); this.initialRemovedImaged = new List<Uri>(); this.InitialPreviewList.ItemsSource = initialImages; } } } |