Ich arbeite an einem interaktiven Diagramm, wo ich ein Popup mit mehr Informationen anzeigen kann, wenn der Benutzer auf einen Datenpunkt klickt. Das funktioniert soweit und dies funktioniert die Popup-Definition lautet:Platzieren eines Popups an der Spitze der Mauszeigerposition
<Popup IsOpen="{Binding PopupViewModel.IsOpen}"
Placement="Mouse"
HorizontalOffset="-150">
<Popup.Resources>
<DataTemplate DataType="{x:Type ViewModels:DataPointPopUpContentViewModel}">
<Views:DataPointPopUpContentView/>
</DataTemplate>
</Popup.Resources>
<Border BorderThickness="1" BorderBrush="Black" Background="White">
<ContentPresenter Content="{Binding PopupViewModel}" />
</Border>
</Popup>
die Standardplatzierung des Popup, bei der Verwendung von Placement="Mouse"
an der rechten unteren Ecke des Maus-Cursor. Allerdings möchte ich das Popup nur an der oberen Kante des Mauszeigers platzieren. Wie Sie sehen können, habe ich die horizontale Zentrierung erreicht, indem ich HorizontalOffset="-150"
gesetzt habe, was eine feste Popup-Breite (Breite = 300) hat. Für die vertikale Platzierung habe ich das Problem, dass die Popup-Höhe nicht festgelegt ist, da ich ein Bild variabler Größe und Seitenverhältnis darin zeige. Ich habe daher versucht, VerticalOffset
auf die ActualHeight
des Pupup durch Hinzufügen VerticalOffset="{Binding ActualHeight}"
zu setzen. Dies funktioniert leider nicht. Irgendwelche Ideen darüber, was ich falsch mache und wie ich mein Ziel erreiche?