Hallo zusammen,
<ComboBox
x:Name="DropdownSelection"
AllowDrop="True"
DragOver="DropdownSelection_DragOver"
DataContext="{Binding ToolBar.ViewModel}"
Style="{StaticResource DropdownMenuStyle}">
<ComboBox.ItemTemplate>
<DataTemplate>
<Image
x:Name="item"
Width="48"
Height="48"
AllowDrop="True"
Drop="item_Drop"
HorizontalAlignment="Center"
Source="{Binding ImgIcon}"
Stretch="Uniform" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<Style x:Key="DropdownMenuStyle" TargetType="ComboBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBox">
<Grid x:Name="OuterGrid">
<WpfControls:IconToggleButton
x:Name="Expand"
IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"/>
<Popup
Name="Popup"
AllowsTransparency="True"
Focusable="False"
IsOpen="{TemplateBinding IsDropDownOpen}"
Placement="Bottom"
PlacementTarget="{Binding ElementName=OuterGrid}">
<ContentControl
Content="{Binding ViewModel}"
ContentTemplate="{StaticResource LayoutViewModel}"/>
</Popup>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Mein Problem an der Stelle, welches ich mir absolut nicht erklären kann:
DropDownSelection_DragOver -> dieses Event wird ausgelöst, wenn ich ein Objekt über den IconToggleButton ziehe.
Im Handler des Events setze ich IsDropDownOpen der Combobox auf true, d.h. das Popup mit den Images öffnet sich. So weit so gut.
Jetzt würde ich gerne über item_Drop mitbekommen, wenn das gezogene Objekt über einem der Items (Images) gedroppt wird. Das funktioniert aber nicht. Beim Drop über einem Bild wird kein Event ausgelöst.
Hat jemand eine Erklärung dafür?
Danke
Das Popup ist aus Sicht des Betriebssystems ein extra Fenster und gehört nicht in den VisualTree. Du sollst mal prüfen ob das Popup ebenfalls ein AllowDrop braucht.
Hallo witte,
danke erstmal für die Antwort. Ich habs mal ausprobiert, AllowDrop="True" im popup ändert leider nichts. Auch nicht im ContentControl 😦