private async Task UpdatePhotoClass(string v_sFile, int v_iIDKey, string v_sComment) { try { DisplayPhoto cPhoto = new DisplayPhoto(); cPhoto.IDKey = v_iIDKey; cPhoto.NoteText = v_sComment; cPhoto.FilePath = v_sFile; cPhoto.FileUri = new Uri(v_sFile, UriKind.RelativeOrAbsolute); Main.DisplayImageDetails didImage = await this.ReturnDisplayImageFromFile(v_sFile); cPhoto.ImageSource = didImage.wbBitmap; cPhoto.ImageWidth = didImage.dOriginalWidth; cPhoto.ImageHeight = didImage.dOriginalHeight; cPhoto.SubProjectNo = this.m_cProject.SubProjectNo; //cPhoto.GridHeight = this.gvPhotos.ActualHeight; //cPhoto.GridWidth = this.gvPhotos.ActualWidth; cPhoto.UniqueID = Environment.TickCount; await Task.Delay(2);//Wait 2 milliseconds so tick count will always be unique when used. Main.p_cProjectPhotos.Add(cPhoto); //DisplayUI(Main.p_cProjectPhotos); DisplayUI(cPhoto); //this.gvPhotos.ItemsSource = cMain.p_cProjectPhotos; //this.gvPhotos.SelectedIndex = this.gvPhotos.Items.Count - 1; } catch (Exception ex) { } }
/// <summary> /// Return display image from file. /// </summary> /// <param name="v_sFilePath"></param> /// <returns></returns> private async Task <Main.DisplayImageDetails> ReturnDisplayImageFromFile(string v_sFilePath) { Main.DisplayImageDetails didReturn = new Main.DisplayImageDetails(); try { //Get image. object bmpImage = await DependencyService.Get <IMain>().ReturnImageFromFile(v_sFilePath); //Record original dimensions didReturn.dOriginalWidth = DependencyService.Get <IMain>().ReturnWidthBitmapImage(bmpImage); didReturn.dOriginalHeight = DependencyService.Get <IMain>().ReturnHeightBitmapImage(bmpImage); //Fetch maximum image dimension for preview. decimal dMaxDimension = Convert.ToDecimal(DependencyService.Get <IMain>().GetAppResourceValue("Max_Image_Dimension_Preview")); //Work out new dimensions for displaying in grid. Size szNewDimensions = Main.ReturnAspectRatio(didReturn.dOriginalWidth, didReturn.dOriginalHeight, dMaxDimension); //Resize image. didReturn.wbBitmap = await DependencyService.Get <IMain>().ReadAndResizeImageFile(v_sFilePath, szNewDimensions); // return(didReturn); } catch (Exception ex) { //cMain.ReportError(ex, cMain.GetCallerMethodName(), string.Empty); return(didReturn); } }