private async void OnVisibilityChanged(DependencyObject sender, DependencyProperty dp) { if (Visibility == Visibility.Visible) { await Task.Delay(100); CaptionInput.Focus(FocusState.Keyboard); } }
private void OnLoaded(object sender, RoutedEventArgs e) { InputPane.GetForCurrentView().Showing += InputPane_Showing; InputPane.GetForCurrentView().Hiding += InputPane_Hiding; if (UIViewSettings.GetForCurrentView().UserInteractionMode == UserInteractionMode.Mouse) { CaptionInput.Focus(FocusState.Keyboard); } }
private void Accept_Click(object sender, RoutedEventArgs e) { if ((CropToolbar != null && CropToolbar.Visibility == Visibility.Visible) || (!_hasMessageContext && _media.IsVideo)) { var rect = Cropper.CropRectangle; TimeSpan trimStartTime; TimeSpan trimStopTime; if (TrimRange != null) { trimStartTime = TimeSpan.FromMilliseconds(TrimRange.Minimum * TrimRange.OriginalDuration.TotalMilliseconds); trimStopTime = TimeSpan.FromMilliseconds(TrimRange.Maximum * TrimRange.OriginalDuration.TotalMilliseconds); } if (_media?.EditState is BitmapEditState es) { es.Rectangle = rect; es.Proportions = Cropper.Proportions; es.Strokes = Canvas.Strokes; es.Flip = _flip; es.Rotation = _rotation; es.TrimStartTime = trimStartTime; es.TrimStopTime = trimStopTime; } Crop.IsChecked = IsCropped(rect); ResetUiVisibility(); if (!_hasMessageContext && _media.IsVideo) { Hide(ContentDialogResult.Primary); } } else if (DrawToolbar != null && DrawToolbar.Visibility == Visibility.Visible) { Canvas.SaveState(); _media.EditState.Strokes = Canvas.Strokes; Draw.IsChecked = Canvas.Strokes?.Count > 0; ResetUiVisibility(); SettingsService.Current.Pencil = DrawSlider.GetDefault(); } else { if (_hasMessageContext) { ResetUiVisibility(); _media.Caption = CaptionInput.GetFormattedText(); } Hide(ContentDialogResult.Primary); } }
private void OnLoaded(object sender, RoutedEventArgs e) { InputPane.GetForCurrentView().Showing += InputPane_Showing; InputPane.GetForCurrentView().Hiding += InputPane_Hiding; if (UIViewSettings.GetForCurrentView().UserInteractionMode == UserInteractionMode.Mouse) { CaptionInput.Focus(FocusState.Keyboard); } PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SelectedItem")); }
private void Accept_Click(object sender, RoutedEventArgs e) { if (Items == null) { Hide(ContentDialogResult.Secondary); return; } if (IsEditingCompression && SelectedItem is StorageVideo video) { video.Compression = (int)CompressionValue.Value; IsEditingCompression = false; return; } if (IsEditingCropping && SelectedItem is StorageMedia media) { media.CropRectangle = Cropper.CropRectangle; media.Refresh(); Select_Click(null, null); IsEditingCropping = false; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SelectedItem")); return; } if (SelectedItem != null && SelectedItems.IsEmpty()) { SelectedItems.Add(SelectedItem); } if (IsGroupingEnabled) { ViewModel.Settings.IsSendGrouped = IsGrouped; } SelectedItem.Caption = CaptionInput.GetFormattedText() .Substring(0, ViewModel.CacheService.Options.MessageCaptionLengthMax); Hide(ContentDialogResult.Primary); }
private void OnLoaded(object sender, RoutedEventArgs e) { InputPane.GetForCurrentView().Showing += InputPane_Showing; InputPane.GetForCurrentView().Hiding += InputPane_Hiding; IsGrouped = ViewModel.Settings.IsSendGrouped; if (ApiInformation.IsPropertyPresent("Windows.UI.Xaml.Controls.RichEditBox", "MaxLength")) { CaptionInput.MaxLength = ViewModel.CacheService.Options.MessageCaptionLengthMax; } if (UIViewSettings.GetForCurrentView().UserInteractionMode == UserInteractionMode.Mouse) { CaptionInput.Focus(FocusState.Keyboard); } PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("SelectedItem")); }
public EditMediaPopup(StorageMedia media, ImageCropperMask mask = ImageCropperMask.Rectangle, bool ttl = false) { InitializeComponent(); Canvas.Strokes = media.EditState.Strokes; Cropper.SetMask(mask); if (mask == ImageCropperMask.Ellipse) { _hasMessageContext = false; media.EditState.Proportions = BitmapProportions.Square; } Cropper.SetProportions(media.EditState.Proportions); _file = media.File; _media = media; _originalMediaEditState = CopyBitmapEditState(media.EditState); Loaded += async(s, args) => { await Cropper.SetSourceAsync(media.File, media.EditState.Rotation, media.EditState.Flip, media.EditState.Proportions, media.EditState.Rectangle); if (!_hasMessageContext) //TODO: Fix mask bug, remove hack (#2017 references mask position) { await Cropper.SetSourceAsync(_media.File, _media.EditState.Rotation, _media.EditState.Flip, _media.EditState.Proportions, _media.EditState.Rectangle); Cropper.SetProportions(_media.EditState.Proportions); } Cropper.IsCropEnabled = !_hasMessageContext && _media.IsVideo; }; Unloaded += (s, args) => { Media.Source = null; }; #region Init UI if (mask == ImageCropperMask.Ellipse && string.Equals(media.File.FileType, ".mp4", StringComparison.OrdinalIgnoreCase)) { FindName(nameof(TrimToolbar)); TrimToolbar.Visibility = Visibility.Visible; BasicToolbar.Visibility = Visibility.Collapsed; SeparatorLeft.Visibility = Visibility.Collapsed; SeparatorRight.Visibility = Visibility.Collapsed; InitializeVideo(media.File); } if (_media is StorageVideo video) { _originalVideoCompression = video.Compression; _originalVideoIsMuted = video.IsMuted; Mute.IsChecked = video.IsMuted; Mute.Visibility = Visibility.Visible; Compress.IsChecked = video.Compression != video.MaxCompression; Compress.Visibility = video.CanCompress ? Visibility.Visible : Visibility.Collapsed; if (video.CanCompress) { Compress.Glyph = new CompressionToGlyphConverter().Convert(video.Compression, typeof(string), null, video.MaxCompression.ToString()).ToString(); Compress.CheckedGlyph = Compress.Glyph; Compress.IsChecked = video.Compression != video.MaxCompression; } } else { Mute.Visibility = Visibility.Collapsed; Compress.Visibility = Visibility.Collapsed; } Crop.Visibility = _media is StoragePhoto ? Visibility.Visible : Visibility.Collapsed; Draw.Visibility = Crop.Visibility; Ttl.Visibility = ttl ? Visibility.Visible : Visibility.Collapsed; Ttl.IsChecked = _media.Ttl > 0; if (_media.EditState is BitmapEditState editSate) { Crop.IsChecked = editSate.Proportions != BitmapProportions.Custom || editSate.Flip != BitmapFlip.None || editSate.Rotation != BitmapRotation.None || (!editSate.Rectangle.IsEmpty && (editSate.Rectangle.X > 0 || editSate.Rectangle.Y > 0 || Math.Abs(editSate.Rectangle.Width - 1) > 0.1f || Math.Abs(editSate.Rectangle.Height - 1) > 0.1f)); Draw.IsChecked = editSate.Strokes != null && editSate.Strokes.Count > 0; } else { Crop.IsChecked = false; Draw.IsChecked = false; } if (_hasMessageContext) { if (!string.IsNullOrWhiteSpace(media.Caption?.Text)) { CaptionInput.SetText(media.Caption); } } else { CaptionInput.Visibility = Visibility.Collapsed; } #endregion }
private void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args) { Caption = CaptionInput.GetFormattedText(); }