private void CoreServiceOnFrameRendered(object sender, FrameRenderedEventArgs e) { foreach (DataBindingConditionViewModel <TLayerProperty, TProperty> dataBindingConditionViewModel in Items) { dataBindingConditionViewModel.Evaluate(); } }
private void CoreServiceOnFrameRendered(object sender, FrameRenderedEventArgs e) { Execute.PostToUIThread(() => { if (e.BitmapBrush.Bitmap == null) { return; } if (!(CurrentFrame is WriteableBitmap writeableBitmap)) { CurrentFrame = e.BitmapBrush.Bitmap.ToWriteableBitmap(); return; } try { using (var skiaImage = SKImage.FromPixels(e.BitmapBrush.Bitmap.PeekPixels())) { var info = new SKImageInfo(skiaImage.Width, skiaImage.Height); writeableBitmap.Lock(); using (var pixmap = new SKPixmap(info, writeableBitmap.BackBuffer, writeableBitmap.BackBufferStride)) { skiaImage.ReadPixels(pixmap, 0, 0); } writeableBitmap.AddDirtyRect(new Int32Rect(0, 0, writeableBitmap.PixelWidth, writeableBitmap.PixelHeight)); writeableBitmap.Unlock(); } } catch (AccessViolationException) { // oops } }); }
protected virtual void OnFrameRendered(FrameRenderedEventArgs e) { FrameRendered?.Invoke(this, e); }