| File: System\Windows\DataObjectCopyingEventArgs.cs | Web Access |
| Project: src\wpf\src\Microsoft.DotNet.Wpf\src\PresentationCore\PresentationCore.csproj (PresentationCore) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // // // Description: DataObject.Copying event arguments // namespace System.Windows { /// <summary> /// Arguments for the DataObject.Copying event. /// /// The DataObject.Copying event is raised when an editor /// has converted a content of selection into all appropriate /// clipboard data formats, collected them all in DataObject /// and is ready to put the object onto the Clipboard. /// An application can inspect DataObject, change, remove or /// add some data formats into it and decide whether to proceed /// with the copying or cancel it. /// </summary> public sealed class DataObjectCopyingEventArgs : DataObjectEventArgs { //------------------------------------------------------ // // Constructors // //------------------------------------------------------ #region Constructors /// <summary> /// Creates an arguments for a DataObject.Copying event. /// This object created by editors executing a Copy and Drag. /// </summary> /// <param name="dataObject"> /// DataObject filled in with all appropriate data formats /// and ready for putting into the Clipboard /// or to used in dragging gesture. /// </param> /// <param name="isDragDrop"> /// A flag indicating if this operation is part of drag/drop. /// Copying event is fired on drag start. /// </param> public DataObjectCopyingEventArgs(IDataObject dataObject, bool isDragDrop) // : base(System.Windows.DataObject.CopyingEvent, isDragDrop) { ArgumentNullException.ThrowIfNull(dataObject); _dataObject = dataObject; } #endregion Constructors //------------------------------------------------------ // // Public Properties // //------------------------------------------------------ #region Public Properties /// <summary> /// DataObject filled in with all appropriate data formats /// and ready for putting into the Clipboard. /// </summary> public IDataObject DataObject { get { return _dataObject; } } #endregion Public Properties #region Protected Methods //------------------------------------------------------ // // Protected Methods // //------------------------------------------------------ /// <summary> /// The mechanism used to call the type-specific handler on the target. /// </summary> /// <param name="genericHandler"> /// The generic handler to call in a type-specific way. /// </param> /// <param name="genericTarget"> /// The target to call the handler on. /// </param> protected override void InvokeEventHandler(Delegate genericHandler, object genericTarget) { DataObjectCopyingEventHandler handler = (DataObjectCopyingEventHandler)genericHandler; handler(genericTarget, this); } #endregion Protected Methods //------------------------------------------------------ // // Private Fields // //------------------------------------------------------ #region Private Fields private IDataObject _dataObject; #endregion Private Fields } /// <summary> /// The delegate to use for handlers that receive the DataObject.Copying event. /// </summary> /// <remarks> /// A handler for DataObject.Copying event. /// The handler is expected to inspect the content of a data object /// passed via event arguments (DataObjectCopyingEventArgs.DataObject) /// and add additional (custom) data format to it. /// It's also possible for the handler to change /// the contents of other data formats already put on DataObject /// or even remove some of those formats. /// All this happens before DataObject is put on /// the Clipboard (in copy operation) or before DragDrop /// process starts. /// The handler can cancel the whole copying event /// by calling DataObjectCopyingEventArgs.CancelCommand method. /// For the case of Copy a command will be cancelled, /// for the case of DragDrop a dragdrop process will be /// terminated in the beginning. /// </remarks> public delegate void DataObjectCopyingEventHandler(object sender, DataObjectCopyingEventArgs e); }