WPF FrameworkElement Mausklick Ausgabe
-
24-10-2019 - |
Frage
In einer WPF-app, die ich habe ich paar CustomControls in einem Raster.Für die Verarbeitung Mausklicks auf Ihnen, die ich die MouseLeftButtonDown
Ereignis des Rasters und der event-handler-ich überprüfen, welche CustomControl geklickt wurde:
private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
FrameworkElement feSourceComm = e.Source as FrameworkElement;
MyCustomControl SCurrentComm = new MyCustomControl();
try
{
SCurrentComm = (MyCustomControl)feSourceComm;
}
catch (Exception)
{
...
Tauchte das problem, wenn ich alle CustomControls in ein UserControl und dann innerhalb des Gitters.In diesem Fall Ansatz funktioniert nicht.
Ich habe in der Art von klicken Sie auf Quelle in jedem Fall durch e.Source.GetType().ToString();
und erhalten die folgenden Ergebnisse:
Wenn es sind kein problem (im Fall lege ich CustomControls im Netz ohne UserControl)
MyProjectNamespace.MyCustomControl
Wenn ich CustomControls in der UserControl-und dann in der Startaufstellung
MyProjectNamespace.UserControls.MyUserControlName
Wenn ich CustomControls in der UserControl-und dann im Netz und laden Sie die UserControl-aus externer Datei XamlReader.Load
System.Windows.Controls.UserControl
So, meine Frage:
Wie man CustomControls vizible als e.Source
wenn Sie innerhalb eines UserControl?
Lösung
e.OriginalSource
wird sagen Sie die spezifische element der Klick passiert.wenn, dass ist nicht Ihr customcontrol, zu Fuß die Übergeordnete Kette der OriginalSource
bis Sie Ihre customcontrol