private void UserControl_Loaded(object sender, RoutedEventArgs e) { if (_embed.Type == "image" && _embed.Thumbnail != null) { var imageElement = new ImageElement() { ImageUri = _embed.Thumbnail.ProxyUrl, ImageWidth = _embed.Thumbnail.Width, ImageHeight = _embed.Thumbnail.Height }; imageElement.Tapped += ImageElement_Tapped; Content = imageElement; return; } if (_embed.Type == "gifv" && _embed.Video != null) { Logger.Log($"Image: {_embed.Image ?? (object)"null"}"); var scaleContainer = new ScaledContentControl() { TargetWidth = _embed.Video.Width, TargetHeight = _embed.Video.Height, }; _mediaPlayer = new MediaPlayerElement() { AreTransportControlsEnabled = false, Source = MediaSource.CreateFromUri(_embed.Video.Url), PosterSource = _embed.Thumbnail != null ? new BitmapImage(_embed.Thumbnail.Url) : null }; _mediaPlayer.Loaded += MediaPlayer_Loaded; scaleContainer.Content = _mediaPlayer; Content = scaleContainer; if (App.RoamingSettings.Read(Constants.GIF_AUTOPLAY, true) && !NetworkHelper.IsNetworkLimited) { Window.Current.VisibilityChanged += OnWindowVisibilityChanged; _mediaPlayer.AutoPlay = true; } else { _mediaPlayer.Tapped += OnMediaPlayerTapped; _mediaPlayer.AutoPlay = false; } return; } if (_embed.Color.HasValue) { var col = _embed.Color.Value; Border.BorderBrush = new SolidColorBrush(Color.FromArgb(255, col.R, col.G, col.B)); Border.BorderThickness = new Thickness(4, 0, 0, 0); } if (_embed.Image != null) { var image = new ImageElement() { ImageUri = _embed.Image.ProxyUrl, ImageWidth = _embed.Image.Width, ImageHeight = _embed.Image.Height }; AddWithRow(image); } if (_embed.Video != null) { thumbnail.Visibility = Visibility.Collapsed; var video = new EmbedVideoControl() { Embed = _embed, Thumbnail = _embed.Thumbnail, Video = _embed.Video }; AddWithRow(video); } if (_embed.Fields?.Any() == true) { var inline = _embed.Fields.First().Inline; var p = inline ? new WrapPanel() : (Panel) new StackPanel(); foreach (var field in _embed.Fields) { if (field.Inline == inline) { AddFieldToPanel(p, field); } else { if (p.Children.Count != 0) { AddWithRow(p); } inline = field.Inline; p = inline ? new WrapPanel() : (Panel) new StackPanel(); AddFieldToPanel(p, field); } } if (p.Children.Count != 0 && !fieldsGrid.Children.Contains(p)) { AddWithRow(p); } } Bindings.Update(); }
private void UserControl_Loaded(object sender, RoutedEventArgs e) { if (Path.GetFileNameWithoutExtension(Attachment.Url).StartsWith("SPOILER_") && App.RoamingSettings.Read(Constants.ENABLE_SPOILERS, true)) { spoilerOverlay.Visibility = Visibility.Visible; } var url = Attachment.Url; var fileExtension = Path.GetExtension(url); if (_mediaExtensions.Contains(fileExtension)) { var mediaPlayer = new MediaPlayerElement() { AreTransportControlsEnabled = true, Source = MediaSource.CreateFromUri(new Uri(Attachment.ProxyUrl)), PosterSource = Attachment.Width != 0 ? new BitmapImage(new Uri(Attachment.ProxyUrl + "?format=jpeg")) : null }; mediaPlayer.TransportControls.Style = (Style)App.Current.Resources["MediaTransportControlsStyle"]; mediaPlayer.TransportControls.IsCompact = true; if (Attachment.Width == 0) { if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5)) { mediaPlayer.TransportControls.ShowAndHideAutomatically = false; } mediaPlayer.VerticalAlignment = VerticalAlignment.Top; mediaPlayer.VerticalContentAlignment = VerticalAlignment.Top; detailsGrid.Visibility = Visibility.Collapsed; _audioOnly = true; } mainGrid.Content = mediaPlayer; _timer = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(3) }; _timer.Tick += _timer_Tick; } else if (Attachment.Height != 0 && Attachment.Width != 0) { var imageElement = new ImageElement() { ImageWidth = Attachment.Width, ImageHeight = Attachment.Height, ImageUri = new Uri(Attachment.ProxyUrl) }; imageElement.Tapped += Image_Tapped; mainGrid.Content = imageElement; _timer = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(3) }; _timer.Tick += _timer_Tick; } else { detailsTransform.Y = 0; grid.PointerEntered -= Grid_PointerEntered; grid.PointerExited -= Grid_PointerExited; } }