Hallo zusammen,
ich arbeite mich gerade ein wenig in WPF ein und habe aktuell folgendes Problem.
Ich möchte gerne ein neues Formular anzeigen, wenn ein jeweiliges "MenuItem" geklickt wird.
Allerdings wird das Event auch gefeuert, wenn ich einfach so auf die Form klicke, bzw. auf die Panels.
Ich bin mir sicher, dass es an den RoutedEvents von WPF liegen wird, aber leider weiß ich nicht was ich falsch mache.
Der betreffliche XAML-Code:
Der VB.NET Code:
Ich habe schon beabsichtigt eingefügt, dass er überprüfen soll, welche OriginalSource hinter dem ganzen Event steckt. Scheinbar bringt das trotzdem nichts.
e.handled müsste ich doch theoretisch weglassen können, da dies hier eigentlich die tiefste Ebene des Events ist, sprich danach folgt ja erstmal kein weiteres RoutedEvent, oder?
Wäre nett wenn jemand helfen könnte.
PS: Ich habe auch schon mitm Sender versucht zu arbeiten, bzw. mit MouseLeftButtonDown, statt Preview..., allerdings hatte dies ebenfalls zur Folge, dass das Event mehrfach ausgelöst/verarbeitet wurde.
Vielleicht hatte ich nach verschiedenen Versuchen auch den Überblick verloren und vermischt :/.
----------------
Was mich noch speziell in WPF interessiert, ist mit Datenmodellen besser arbeiten zu können.
Leider finde ich nicht so die Masse an guten Büchern/Tutorials.
Wenn jemand also noch Quellen hat, würde ich diese gerne hören/davon lesen :)!
Meine bisherige Quelle:
wpftutorial.net
EDIT:
Folgendes ist mir noch aufgefallen:
- Wenn ich Buttons statt TextBlocks verwende geht das Ganze wie gewollt.
- Es funktioniert bei dem "Bug" nur auf Tablets nicht (2 getestet), auf nem normalen Desktop PC gehts.
ich arbeite mich gerade ein wenig in WPF ein und habe aktuell folgendes Problem.
Ich möchte gerne ein neues Formular anzeigen, wenn ein jeweiliges "MenuItem" geklickt wird.
Allerdings wird das Event auch gefeuert, wenn ich einfach so auf die Form klicke, bzw. auf die Panels.
Ich bin mir sicher, dass es an den RoutedEvents von WPF liegen wird, aber leider weiß ich nicht was ich falsch mache.
Der betreffliche XAML-Code:
XML-Quellcode
- <StackPanel DockPanel.Dock="Left" MinWidth="130" Background="Red" x:Name="spMenu">
- <TextBlock x:Name="mi1" TextAlignment="Center" FontSize="26" PreviewMouseLeftButtonDown="Menuitem_Clicked">MenuItem1</TextBlock>
- <TextBlock x:Name="mi2" TextAlignment="Center" FontSize="26" PreviewMouseLeftButtonDown="Menuitem_Clicked">MenuItem2</TextBlock>
- <TextBlock x:Name="mi3" TextAlignment="Center" FontSize="26" PreviewMouseLeftButtonDown="Menuitem_Clicked">MenuItem3</TextBlock>
- <TextBlock x:Name="mi4" TextAlignment="Center" FontSize="26" PreviewMouseLeftButtonDown="Menuitem_Clicked">MenuItem4</TextBlock>
- </StackPanel>
Der VB.NET Code:
Ich habe schon beabsichtigt eingefügt, dass er überprüfen soll, welche OriginalSource hinter dem ganzen Event steckt. Scheinbar bringt das trotzdem nichts.
e.handled müsste ich doch theoretisch weglassen können, da dies hier eigentlich die tiefste Ebene des Events ist, sprich danach folgt ja erstmal kein weiteres RoutedEvent, oder?
Wäre nett wenn jemand helfen könnte.
PS: Ich habe auch schon mitm Sender versucht zu arbeiten, bzw. mit MouseLeftButtonDown, statt Preview..., allerdings hatte dies ebenfalls zur Folge, dass das Event mehrfach ausgelöst/verarbeitet wurde.
Vielleicht hatte ich nach verschiedenen Versuchen auch den Überblick verloren und vermischt :/.
----------------
Was mich noch speziell in WPF interessiert, ist mit Datenmodellen besser arbeiten zu können.
Leider finde ich nicht so die Masse an guten Büchern/Tutorials.
Wenn jemand also noch Quellen hat, würde ich diese gerne hören/davon lesen :)!
Meine bisherige Quelle:
wpftutorial.net
EDIT:
Folgendes ist mir noch aufgefallen:
- Wenn ich Buttons statt TextBlocks verwende geht das Ganze wie gewollt.
- Es funktioniert bei dem "Bug" nur auf Tablets nicht (2 getestet), auf nem normalen Desktop PC gehts.
XML-Quellcode
- <StackPanel Button.Click="MenuItem_Click" DockPanel.Dock="Left" MinWidth="130" Background="Red" x:Name="spMenu">
- <TextBlock x:Name="mi1" TextAlignment="Center" Margin="5,10" FontSize="26" >MenuItem1</TextBlock>
- <TextBlock x:Name="mi2" TextAlignment="Center" Margin="5,10" FontSize="26" >MenuItem2</TextBlock>
- <TextBlock x:Name="mi3" TextAlignment="Center" Margin="5,10" FontSize="26" >MenuItem3</TextBlock>
- <TextBlock x:Name="mi4" TextAlignment="Center" Margin="5,10" FontSize="26" >MenuItem4</TextBlock>
- <Button>1</Button>
- <Button>2</Button>
- <Button>3</Button>
- </StackPanel>
Polling is trolling!
Achtung: Ich habe die komische Angewohnheit, simple Dinge zu verkomplizieren..
Achtung: Ich habe die komische Angewohnheit, simple Dinge zu verkomplizieren..
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Rootbob91“ ()