简体   繁体   中英

Context Menu Item for ListBox in WPF

I want to display ContextMenu on right click of ListBoxItems in WPF. I tried below code, but ContextMenu is displaying where ListBoxItems are not there also. What I want is to display ContextMenu only on the right click of only ListBoxItems.

<Grid>
<ListBox x:Name="listofConnectedItems" Grid.Column="0" Grid.Row="0" ItemsSource="{Binding MyItems}" MouseRightButtonDown="listofConnectedItems_MouseRightButtonDown" ContextMenuOpening="listofConnectedItems_ContextMenuOpening" >
        <ListBox.ItemContainerStyle>
            <Style TargetType="{x:Type ListBoxItem}">
                <Setter Property="Padding" Value="10">

                </Setter>
            </Style>
        </ListBox.ItemContainerStyle>
        <ListBox.ContextMenu>
            <ContextMenu>
                <MenuItem Header="_Start" Click="MenuItemStart_Click"  />
                <MenuItem Header="Sto_p" Click="MenuItemStop_Click" />
                <MenuItem Header="_Clear" Click="MenuItemClear_Click" />
            </ContextMenu>
        </ListBox.ContextMenu>

    </ListBox>
</Grid>

` Here I attached the screenshot. 在此处输入图片说明 Can anybody Please get me through this. Thanks in advance

It should be in IntemContainerStyle :

<ListBox.ItemContainerStyle>
   <Style TargetType="ListBoxItem">
       <Setter Property="ContextMenu">
           <Setter.Value>
               <ContextMenu>
                   <MenuItem Header="Open" />
                   <MenuItem Header="Edit" Command="Binding 
               </ContextMenu>
           </Setter.Value>
       </Setter>
   </Style>
</ListBox.ItemContainerStyle>

I think the problem is that You didn't specified height and width of list box so it automaticaly scales to the window size. So technically Your code is working correctly but listbox is everywhere.

try with something like

<ListBox x:Name="listofConnectedItems" Grid.Column="0" Grid.Row="0" BorderThickness="5" Width="200" Height="200"...

and then rightclick outside the listbox

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM