2017-10-09 4 views
0

Also habe ich versucht, meinen ListViewitems ein Kontextmenü hinzuzufügen, aber ich kann es nicht herausfinden. Ich habe es geschafft, herauszufinden, wie es für die Weile lsitview Kontrolle zu tun, aber ich kann nicht scheinen, wie es für die tatsächlichen ListViewitems zu tun.Wie füge ich meinen ListViewitems in WPF ein Kontextmenü hinzu?

ich diesen

<ContextMenu> 
<MenuItem Header="Remove"/> 
</ContextMenu> 

Zu meiner listviewcontrol tat, die die contextmenu ihn hinzugefügt, aber das sind nicht das, was ich will, ich will es für die Listviewitem.

<ListView Margin="10,36,520,10" ScrollViewer.HorizontalScrollBarVisibility="Hidden" BorderBrush="Black" Padding="-1, -1, 1, 0" Background="Transparent" BorderThickness="1.000001" Name="lvUsers" Style="{DynamicResource ListViewStyle1}"> 
      <ListView.ItemContainerStyle> 
       <Style TargetType="{x:Type ListViewItem}"> 
        <Setter Property="Background" Value="Transparent" /> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate TargetType="{x:Type ListViewItem}"> 
           <Border 
         BorderBrush="Transparent" 
         BorderThickness="0" 
         Background="{TemplateBinding Background}"> 

            <GridViewRowPresenter HorizontalAlignment="Stretch" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Width="Auto" Margin="0" Content="{TemplateBinding Content}"/> 
           </Border> 
          </ControlTemplate> 
         </Setter.Value> 

        </Setter> 

        <Style.Triggers> 
         <Trigger Property="IsMouseOver" Value="True"> 
          <Setter Property="Foreground" Value="White" /> 
          <Setter Property="Background" Value="#696969" /> 
          <Setter Property="BorderBrush" Value="#696969" /> 
          <Setter Property="BorderThickness" Value="0" /> 
         </Trigger> 

         <Trigger Property="IsSelected" Value="True"> 
          <Setter Property="Foreground" Value="White" /> 
          <Setter Property="Background" Value="#696969" /> 
          <Setter Property="BorderBrush" Value="#696969" /> 
          <Setter Property="BorderThickness" Value="0" /> 
         </Trigger> 
        </Style.Triggers> 
       </Style> 
      </ListView.ItemContainerStyle> 
      <ListView.View> 
       <GridView ColumnHeaderContainerStyle="{StaticResource GridViewColumnHeaderStyle1}"> 
        <GridViewColumn x:Name="GridViewColumnName" Header="Name" Width="165"> 
         <GridViewColumn.CellTemplate> 
          <DataTemplate> 
           <StackPanel Orientation="Horizontal"> 
            <Image x:Name="Image_GridViewColumnName" Width="16" Height="16" Source="C:\Users\developer\source\repos\PortforwardWPF\PortforwardWPF\Images\minecraft.png" /> 
            <Label Content="{Binding Username}" Visibility="Visible" /> 
           </StackPanel> 
          </DataTemplate> 
         </GridViewColumn.CellTemplate> 
        </GridViewColumn> 
       </GridView> 

      </ListView.View> 
     </ListView> 

Antwort

2

Option # 1:

<Style TargetType="{x:Type ListViewItem}"> 
     <Setter Property="ContextMenu"> 
      <Setter.Value> 
       <ContextMenu /> 
      </Setter.Value> 
     </Setter> 
     <Setter Property="Background" Value="Transparent" /> 

Option # 2

  <Setter.Value> 
       <ControlTemplate TargetType="{x:Type ListViewItem}"> 
        <Border 
         BorderBrush="Transparent" 
         BorderThickness="0" 
         Background="{TemplateBinding Background}"> 
         <Border.ContextMenu> 
          <ContextMenu /> 
         </Border.ContextMenu> 
+0

Ohh! Tolle! Vielen vielen Dank, Sir! –

Verwandte Themen