首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListBoxItems上的WPF上下文菜单

ListBoxItems上的WPF上下文菜单
EN

Stack Overflow用户
提问于 2018-04-19 13:14:33
回答 1查看 27关注 0票数 0

我想我首先要说我的WPF程序有一个ListBox。显然,这里面有一些ListBoxItems。每个ListBoxItem都填充了数据,其中一些ListBoxItems比其他ListBoxItems更宽或更窄。

为了给ListBoxItem一个上下文菜单,我在ListBoxItem的数据模板周围放置了一个边框,并将上下文菜单附加到该边框。它工作得很好,但有个麻烦。让我给你们展示一幅图片来说明:

所以你可以在这里看到,上面的项目有两个项目。这些项目有黑色的边框,在这张图片中,第一个被选中。但是,如您所见,蓝色选择区域大于项目本身(用黑色边框表示)。现在,外部区域可以选择一个ListBoxItem,但是如果我在该额外区域右键单击,当然它不会为该项目提供上下文菜单。

我认为我的方式有点错误,因为这让用户感到很困惑。我只是想知道有什么更好的方法,我希望这里的人能帮助我。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-19 13:49:23

可以将contextmenu附加到listboxitem本身。大致如下:

代码语言:javascript
复制
<ListBox.ItemContainerStyle>
    <Style TargetType="ListBoxItem">
        <Setter Property="ContextMenu">
            <Setter.Value>
                <ContextMenu>
                    .....
                </ContextMenu>
            </Setter.Value>
        </Setter>
    </Style>
</ListBox.ItemContainerStyle>

或者您可以将context菜单放在列表框本身上:

代码语言:javascript
复制
<ListBox>
    <ListBox.ContextMenu>
        <ContextMenu>
            ...
        </ContextMenu>
    </ListBox.ContextMenu>

你可能会认为..。啊,但是我怎么知道他们点击了哪一项呢。这将被选中。您可以绑定选择的项并使用它。您没有询问如何绑定或类似的问题,但是您可能会发现在listbox或窗口的资源中定义contextmenu是最简单的。这样,它就在窗口的数据文本中,您可以绑定到它的视图模型中的命令。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49922078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档