private async Task CreateResourcesAsync(CanvasControl sender) { m_BackgroundImage = await CanvasBitmap.LoadAsync(sender.Device, new Uri("ms-appx:///Assets/setup_bg.jpg")); //m_BackgroundImageInitialAlpha = await CanvasBitmap.LoadAsync(sender.Device, new Uri("ms-appx:///Assets/nuki_initial.png")); var blured = new GaussianBlurEffect() { Source = m_BackgroundImage, BlurAmount = 10.0f, }; m_BluredBackground = new BlendEffect() { Background = blured, Foreground = new ColorSourceEffect() { Color = Windows.UI.Color.FromArgb(25, 0, 0, 0) }, Mode = BlendEffectMode.Darken }; m_BlendedBackground = new BlendEffect() { Background = blured, Foreground = new ColorSourceEffect() { Color = Windows.UI.Color.FromArgb(100, 0, 0, 0) }, Mode = BlendEffectMode.Darken }; m_ImageStatus = ImageLoadStatus.Fading; sender.Invalidate(); }
private void OnImageStatusUpdate(Border view, ImageLoadStatus status) { var eventDispatcher = view.GetReactContext() .GetNativeModule <UIManagerModule>() .EventDispatcher; eventDispatcher.DispatchEvent( new ReactImageLoadEvent( view.GetTag(), (int)status)); }
private void CanvasDrawBrackground(CanvasControl sender, CanvasDrawEventArgs args) { ICanvasImage img = null; Rect drawRect, imageBounds; if (m_BackgroundImage == null) { if (m_ImageStatus == ImageLoadStatus.Initial) { m_ImageStatus = ImageLoadStatus.LoadRequested; var asynHandle = CreateResourcesAsync(sender); } else { } drawRect = GetDrawRect(sender, m_BackgroundImageInitial); img = m_BackgroundImageInitial; imageBounds = m_BackgroundImageInitial.Bounds; } else { switch (ViewModel.BackgoundMode) { case BackgoundMode.CleanImage: img = m_BackgroundImage; break; case BackgoundMode.BluredImage: img = m_BluredBackground; break; case BackgoundMode.BluredDarkImage: img = m_BlendedBackground; break; default: case BackgoundMode.None: break; } imageBounds = m_BackgroundImage.Bounds; drawRect = GetDrawRect(sender, m_BackgroundImage); } if (img != null) { args.DrawingSession.DrawImage(img, drawRect, imageBounds); } else { } }
private void OnImageStatusUpdate(Border view, ImageLoadStatus status, ImageMetadata metadata) { var eventDispatcher = view.GetReactContext() .GetNativeModule <UIManagerModule>() .EventDispatcher; eventDispatcher.DispatchEvent( new ReactImageLoadEvent( view.GetTag(), (int)status, metadata.Uri, metadata.Width, metadata.Height)); }
private void CanvasFadeInLoadedImage(CanvasControl sender, CanvasDrawEventArgs args) { var drawRectSmall = GetDrawRect(sender, m_BackgroundImageInitial); var drawRectBig = GetDrawRect(sender, m_BackgroundImage); args.DrawingSession.DrawImage(m_BackgroundImageInitial, drawRectSmall, m_BackgroundImageInitial.Bounds); args.DrawingSession.DrawImage(m_BackgroundImage, drawRectBig, m_BackgroundImage.Bounds, m_nFadein); m_nFadein += 0.1f; if (m_nFadein >= 1) { m_ImageStatus = ImageLoadStatus.Complete; } Task.Delay(25).ContinueWith((t) => Dispatcher.RunAsync(CoreDispatcherPriority.Low, sender.Invalidate)); }
private void OnImageStatusUpdate(Border view, ImageLoadStatus status, ImageMetadata metadata) { if (!view.HasTag()) { // View may have been unmounted, ignore. return; } var eventDispatcher = view.GetReactContext() .GetNativeModule <UIManagerModule>() .EventDispatcher; eventDispatcher.DispatchEvent( new ReactImageLoadEvent( view.GetTag(), (int)status, metadata.Uri, metadata.Width, metadata.Height)); }
private void CanvasFadeInLoadedImage(CanvasControl sender, CanvasDrawEventArgs args) { var drawRectSmall = GetDrawRect(sender, m_BackgroundImageInitial); var drawRectBig = GetDrawRect(sender, m_BackgroundImage); var blendEffect = new BlendEffect() { Background = m_BackgroundImage, Foreground = new ColorSourceEffect() { Color = Windows.UI.Color.FromArgb(m_nFadein, 0, 0, 0) }, Mode = BlendEffectMode.Darken }; args.DrawingSession.DrawImage(blendEffect, drawRectBig, m_BackgroundImage.Bounds); args.DrawingSession.DrawImage(m_BackgroundImageInitialAlpha, drawRectSmall, m_BackgroundImageInitialAlpha.Bounds); m_nFadein -= 50; if (m_nFadein <= 0) { m_ImageStatus = ImageLoadStatus.Complete; } Task.Delay(25).ContinueWith((t) => Dispatcher.RunAsync(CoreDispatcherPriority.Low, sender.Invalidate)); }
public ImageStatusEventData(ImageLoadStatus loadStatus, ImageMetadata metadata) { LoadStatus = loadStatus; Metadata = metadata; }
public ImageStatusEventData(ImageLoadStatus loadStatus) : this(loadStatus, default(ImageMetadata)) { }