var renderTargetBitmap = new RenderTargetBitmap(Convert.ToInt32(_AllScreenWidth), Convert.ToInt32(_AllScreenHeight), 96d, 96d, PixelFormats.Default); renderTargetBitmap.Render(Capture_Canvas);
var targetRec = new Int32Rect((int)rect.X, (int)rect.Y, (int)rect.Width , (int)rect.Height );
var img = new CroppedBitmap(renderTargetBitmap, targetRec);
///<summary> /// Removes all event handlers subscribed to the specified routed event from the specified element. ///</summary> ///<param name="element">The UI element on which the routed event is defined.</param> ///<param name="routedEvent">The routed event for which to remove the event handlers.</param> publicstaticvoidRemoveRoutedEventHandlers(UIElement element, RoutedEvent routedEvent) { // Get the EventHandlersStore instance which holds event handlers for the specified element. // The EventHandlersStore class is declared as internal. var eventHandlersStoreProperty = typeof(UIElement).GetProperty( "EventHandlersStore", BindingFlags.Instance | BindingFlags.NonPublic); object eventHandlersStore = eventHandlersStoreProperty.GetValue(element, null);
// If no event handlers are subscribed, eventHandlersStore will be null. // Credit: https://stackoverflow.com/a/16392387/1149773 if (eventHandlersStore == null) return;
// Invoke the GetRoutedEventHandlers method on the EventHandlersStore instance // for getting an array of the subscribed event handlers. var getRoutedEventHandlers = eventHandlersStore.GetType().GetMethod( "GetRoutedEventHandlers", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); var routedEventHandlers = (RoutedEventHandlerInfo[])getRoutedEventHandlers.Invoke( eventHandlersStore, newobject[] { routedEvent });
if (routedEventHandlers == null) return;
// Iteratively remove all routed event handlers from the element. foreach (var routedEventHandler in routedEventHandlers) element.RemoveHandler(routedEvent, routedEventHandler.Handler); }