Hallo miteinander
Ich habe folgende Definition einer ListBox im XAML:
Spoiler anzeigen
Nun will ich auf Rechtsklick ein Popup öffnen. Wenn ich das mache:
[...]
...passiert auf Rechtsklick nichts. Klar, weil ja "über" der ListBox dann noch das Zeugs aus dem ItemTemplate liegt, also der TextBlock und die zwei Borders mit den Paths drinnen.
Wenn ich das InputBinding aber nicht in der ListBox anwende, sondern z.B. auf den Textblock, passiert komischerweise auch nichts...:
[...]
Hat mir da jemand einen Lösungsvorschlag?
Edit:
Alternative wäre ein Kontextmenü. Aber weiss jemand vielleicht warum des Kontextmenü hier nicht mittig auf der ListBox erscheint?:
und auch das hier funktioniert komischerweise nicht:
Ich habe folgende Definition einer ListBox im XAML:
XML-Quellcode
- <ListBox Name="lstMusiktitel" SelectionMode="Single" ItemsSource="{Binding AnzuzeigendeMusiktitel}" SelectedIndex="{Binding MarkierterMusiktitel, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
- <ListBox.ItemTemplate>
- <DataTemplate>
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="3*"/>
- <ColumnDefinition Width="3*"/>
- <ColumnDefinition Width="94*"/>
- </Grid.ColumnDefinitions>
- <TextBlock Text="{Binding Path=Musiktitel}" Grid.Column="2" TextTrimming="CharacterEllipsis">
- <ToolTipService.ToolTip>
- <StackPanel>
- <TextBlock Text="{Binding Path=Tracknummer}"/>
- <TextBlock Text="{Binding Path=Interpret}"/>
- <TextBlock Text="{Binding Path=Album}"/>
- <TextBlock Text="{Binding Path=Musiktitel}"/>
- <TextBlock Text="{Binding Path=Dauer}"/>
- <TextBlock Text="{Binding Path=Genre}"/>
- </StackPanel>
- </ToolTipService.ToolTip>
- </TextBlock>
- <Border Name="brdMusiktitelZuPlaylistZufuegen" Height="{StaticResource listboxitemhoehe}" Grid.Column="0" Style="{DynamicResource Navigationsbuttons}" ToolTip="Füge diesen Musiktitel der Playlist des gewählten Plattendecks zu..." HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
- <Border.InputBindings>
- <MouseBinding MouseAction="LeftClick" Command="{Binding DataContext.MusiktitelZuPlaylistZufuegen, ElementName=lstMusiktitel}" CommandParameter="{Binding}"/>
- </Border.InputBindings>
- <Viewbox Stretch="Uniform">
- <Path Margin="4" Stretch="Uniform" Fill="{DynamicResource VordergrundfarbeBrush}" Data="xxx"/>
- </Viewbox>
- </Border>
- <Border Name="brdMusiktitelAbspielen" Height="{StaticResource listboxitemhoehe}" Grid.Column="1" Style="{DynamicResource Navigationsbuttons}" ToolTip="Spiele diesen Musiktitel auf dem gewählten Plattendeck ab...">
- <Border.InputBindings>
- <MouseBinding MouseAction="LeftClick" Command="{Binding DataContext.MusiktitelAbspielen, ElementName=lstMusiktitel}" CommandParameter="{Binding}"/>
- </Border.InputBindings>
- <Viewbox Stretch="Uniform">
- <Path Margin="4" Stretch="Uniform" Fill="{DynamicResource VordergrundfarbeBrush}" Data="xxx"/>
- </Viewbox>
- </Border>
- </Grid>
- </DataTemplate>
- </ListBox.ItemTemplate>
- </ListBox>
Nun will ich auf Rechtsklick ein Popup öffnen. Wenn ich das mache:
...passiert auf Rechtsklick nichts. Klar, weil ja "über" der ListBox dann noch das Zeugs aus dem ItemTemplate liegt, also der TextBlock und die zwei Borders mit den Paths drinnen.
Wenn ich das InputBinding aber nicht in der ListBox anwende, sondern z.B. auf den Textblock, passiert komischerweise auch nichts...:
Hat mir da jemand einen Lösungsvorschlag?
Edit:
Alternative wäre ein Kontextmenü. Aber weiss jemand vielleicht warum des Kontextmenü hier nicht mittig auf der ListBox erscheint?:
XML-Quellcode
- <ListBox Name="lstMusiktitel" SelectionMode="Single" ItemsSource="{Binding AnzuzeigendeMusiktitel}" SelectedIndex="{Binding MarkierterMusiktitel, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" ContextMenuService.Placement="Center" ContextMenuService.PlacementTarget="{Binding ElementName=lstMusiktitel}">
- <ListBox.ItemContainerStyle>
- <Style TargetType="{x:Type ListBoxItem}">
- <Setter Property="ContextMenu">
- <Setter.Value>
- <ContextMenu Opacity="0.5">
- <ContextMenu.Template>
- <ControlTemplate>
- <Button>johohlo</Button>
- </ControlTemplate>
- </ContextMenu.Template>
- </ContextMenu>
- </Setter.Value>
- </Setter>
- </Style>
- </ListBox.ItemContainerStyle>
und auch das hier funktioniert komischerweise nicht:
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kafffee“ ()