UIElement.AllowDrop Property

Definition

Gets or sets a value indicating whether this element can be used as the target of a drag-and-drop operation. This is a dependency property.

public:
 property bool AllowDrop { bool get(); void set(bool value); };
public bool AllowDrop { get; set; }
member this.AllowDrop : bool with get, set
Public Property AllowDrop As Boolean

Property Value

true if this element can be used as the target of a drag-and-drop operation; otherwise, false. The default value is false.

Examples

The following markup example sets the AllowDrop property true using an attribute on a TextBox, as well as setting some other related properties that in aggregate enable that TextBox to be the target of a multiline text data object when it is dragged in. For the complete sample, see Load a Dropped File Sample.

<TextBox
  Name="tbDisplayFileContents" 
  Grid.Row="1" 
  AcceptsReturn="True" AcceptsTab="True" 
  AllowDrop="True" 
  BorderThickness="1" BorderBrush="Black" 
  HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"
  
  PreviewDragOver="ehDragOver" PreviewDrop="ehDrop"
/>

Remarks

Drag-and-drop operations are not enabled by default, and must be enabled deliberately by setting AllowDrop to true. Beyond this basic setting, drag-and-drop behavior is entirely implementation specific and is not defined by UIElement or any other base element class. Certain controls, for example, RichTextBox, do have a default behavior. For more information on drag and drop, see Drag and Drop Overview.

FrameworkElement overrides the metadata for this dependency property in its implementation. Specifically, FrameworkElement designates this property to allow property value inheritance (Inherits is true in metadata). Property value inheritance in this context means that if there are child elements with no other value for AllowDrop assigned through local values or styles, the value of the nearest parent element with this value assigned (again, either in styles, by default values, or a local value), then the value from the parent element will be assigned to all previously unassigned child elements by the property system. In practice this means that you can specify whether to allow drop operations at the root element, and that value will propagate to all child elements that have not specifically assigned it as false.

Dependency Property Information

Identifier field AllowDropProperty
Metadata properties set to true None

Applies to