Tentative d'affichage des événements OnMouse dans un enfant FrameworkElement
. L'élément parent est un Panel
(et la propriété Background
n'est pas Null).WPF FrameworkElement ne recevant pas l'entrée de la souris
class MyFrameworkElement : FrameworkElement
{
protected override void OnMouseDown(MouseButtonEventArgs e)
{
// Trying to get here!
base.OnMouseDown(e);
}
}
public class MyPanel : Panel
{
protected override void OnMouseDown(MouseButtonEventArgs e)
{
// This is OK
base.OnMouseDown(e);
}
}
onmouse ne sera jamais appelé, événement est toujours et Snoop unhandled me dit que l'événement routé ne semble jamais aller aussi loin que l'élément Panel
.
<Window
x:Class="WpfApplication5.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:l="clr-namespace:WpfApplication5"
Title="Window1" Height="300" Width="300">
<Border x:Name="myBorder" Background="Red">
<l:MyPanel x:Name="myPanel" Background="Transparent">
<l:MyFrameworkElement x:Name="myFE"/>
</l:MyPanel>
</Border>
</Window>
Docs disent que FrameworkElement
poignées d'entrée, mais pourquoi pas dans ce scénario?
Merci pour votre réponse. J'ai joué autour pendant un petit peu et a réussi à obtenir le comportement dont j'ai besoin en ajoutant ce qui suit à FrameWorkElement: protected override void OnRender (DrawingContext drawingContext) { Taille renderSize = this.RenderSize; Rect rect = new Rect (renderSize); Stylo à bille = nouveau stylo (pinceaux.Transparent, 0.0); drawingContext.DrawRectangle (pinceaux.Transparent, stylo, rect); } Peut-être que FrameworkElement a une taille nulle à moins que quelque chose n'y soit ajouté? – lava