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?

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top