There is a control:
<UserControl /*namespaces*/ DataContext="{Binding RelativeSource={RelativeSource Self}}" AllowDrop="True"> <Grid> <Image Source="{Binding Path=ImageUrl}" AllowDrop="True"></Image> </Grid> </UserControl> The main window that uses this control:
<Window /*namespaces*/> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> </Grid.ColumnDefinitions> <ItemsControl Grid.Column="0" Name="ItemsControl"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <UniformGrid /> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> </ItemsControl> <Grid Grid.Column="1"> <Grid.ColumnDefinitions> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="0.15*"></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> </Grid.RowDefinitions> <local:MyCustomControl Grid.Column="0" Grid.Row="1" Drop="MyCustomControl_Drop"></local:MyCustomControl> </Grid> </Grid> </Window> When the application starts, the first column of the top grid is filled, that is, the UniformGrid is filled in the first column as follows:
ItemsControl.Items.Add(new MyCustomControl() { /* properties_initialization*/}); In the second column of the top grid, another internal grid is created ( <Grid Grid.Column="1"> )
As can be seen from the markup in the internal grid, there is one of my controls (in this control, you must allow Drop ):
<local:MyCustomControl Grid.Column="0" Grid.Row="1" Drop="MyCustomControl_Drop"></local:MyCustomControl> Task: from the first column of the top grid, take an item from the UniformGrid and Drop second column, into the internal grid, into my control <local:MyCustomControl... 
What happens now : as you can see from the control markup, the AllowDrop="True" attribute is registered everywhere - which should allow Drop . But if you move an element inside a UniformGrid, then Drop is allowed everywhere. And at the moment when <local:MyCustomControl> (from the second column) is not yet filled, Drop for some reason forbidden and can only be dropped onto the border of the control ..
If you drop it directly on the part where the image is, then the drop is also allowed, but at the time of launch it is empty, so you have to drop it only on the border .. 
I tried to add AllowDrop="True" to all grids and describe the control as follows: <local:MyCustomControl AllowDrop="True" - without success.
Question: why so?