WPF怎么设置右键菜单方向

nicholas199109 2014-11-27 11:46:14

如图所示,在ListView上右击可以弹出菜单,但我的鼠标在右边,而菜单却在左边,怎么才能让菜单在鼠标右边显示,应该设置什么属性的?我默认就是显示在左边
...全文
688 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
csjtxy 2014-11-27
  • 打赏
  • 举报
回复
楼上正解。Placement属性就是干这个的
exception92 2014-11-27
  • 打赏
  • 举报
回复
设置ContextMenu的Placement="Right"了没?
nicholas199109 2014-11-27
  • 打赏
  • 举报
回复
引用 10 楼 duanzi_peng 的回复:
让GridViewColumn 的宽度 足够宽试试。
设置FlowDirection="RightToLeft"可以,但郁闷的是它的内容对齐方式是向右对齐的
exception92 2014-11-27
  • 打赏
  • 举报
回复
让GridViewColumn 的宽度 足够宽试试。
nicholas199109 2014-11-27
  • 打赏
  • 举报
回复
引用 8 楼 dongxinxi 的回复:
你将myListView弄得宽一点,应该就能看出ContextMenu的Placement的作用了
我的myListView宽度肯定够了,我估计是GridViewColumn的宽度问题
  • 打赏
  • 举报
回复
你将myListView弄得宽一点,应该就能看出ContextMenu的Placement的作用了
  • 打赏
  • 举报
回复
是不是跟父容器myListView的尺寸有关,根据点击位置动态决定的,以便最大限度的在myListView中显示菜单,避免超出边界
nicholas199109 2014-11-27
  • 打赏
  • 举报
回复
引用 4 楼 duanzi_peng 的回复:
引用 3 楼 nicholas199109 的回复:
[quote=引用 1 楼 duanzi_peng 的回复:] 设置ContextMenu的Placement="Right"了没?
之前确实没设置,现在设置了,不过不管是Left还是Right效果都一样,还是没变
贴出xaml看看[/quote] 不好意思,少贴了一部分

 <ListView x:Name="myListView"  Height="339" Width="527"  >
                    <ListView.ContextMenu>
                        <ContextMenu  Placement="Right" >
                            <MenuItem Header="刷新" Click="MenuItem_Click_6" />
                            <MenuItem Header="一键获取" Click="MenuItem_Click_3" />
                            <MenuItem Header="一键验证" Click="MenuItem_Click_4" />
                            <MenuItem Header="设为代理" Click="MenuItem_Click_1"/>
                            <MenuItem Header="取消代理" Click="MenuItem_Click_2"/> 
                            <MenuItem Header="导入文本" Click="MenuItem_Click_5"/>
                            <MenuItem Header="一键去除超时项" />
                        </ContextMenu>
                    </ListView.ContextMenu>
                    <ListView.View>
                    <GridView>
                        <GridViewColumn Header="序号" Width="40" DisplayMemberBinding="{Binding Path=Index}"></GridViewColumn>
                        <GridViewColumn Header="IP地址" Width="120" DisplayMemberBinding="{Binding Path=IP}"></GridViewColumn>
                        <GridViewColumn Header="端口" Width="80" DisplayMemberBinding="{Binding Path=Port}"></GridViewColumn>
                        <GridViewColumn Header="地点"  Width="120" DisplayMemberBinding="{Binding Path=Place}"></GridViewColumn>
                        <GridViewColumn Header=" 是否高匿 " Width="auto" DisplayMemberBinding="{Binding Path=Anonymity}"></GridViewColumn>
                        <GridViewColumn Header="延迟(ms)" DisplayMemberBinding="{Binding Path=Speed}"></GridViewColumn>
                    </GridView>
                </ListView.View>
            </ListView>
nicholas199109 2014-11-27
  • 打赏
  • 举报
回复
引用 4 楼 duanzi_peng 的回复:
引用 3 楼 nicholas199109 的回复:
[quote=引用 1 楼 duanzi_peng 的回复:] 设置ContextMenu的Placement="Right"了没?
之前确实没设置,现在设置了,不过不管是Left还是Right效果都一样,还是没变
贴出xaml看看[/quote]

 <ListView x:Name="myListView"  Height="339" Width="527"  >
                    <ListView.ContextMenu>
                        <ContextMenu  Placement="Right" >
                            <MenuItem Header="刷新" Click="MenuItem_Click_6" />
                            <MenuItem Header="一键获取" Click="MenuItem_Click_3" />
                            <MenuItem Header="一键验证" Click="MenuItem_Click_4" />
                            <MenuItem Header="设为代理" Click="MenuItem_Click_1"/>
                            <MenuItem Header="取消代理" Click="MenuItem_Click_2"/> 
                            <MenuItem Header="导入文本" Click="MenuItem_Click_5"/>
                            <MenuItem Header="一键去除超时项" />
                        </ContextMenu>
                    </ListView.ContextMenu>
                    <ListView.View>
exception92 2014-11-27
  • 打赏
  • 举报
回复
引用 3 楼 nicholas199109 的回复:
引用 1 楼 duanzi_peng 的回复:
设置ContextMenu的Placement="Right"了没?
之前确实没设置,现在设置了,不过不管是Left还是Right效果都一样,还是没变
贴出xaml看看
nicholas199109 2014-11-27
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
设置ContextMenu的Placement="Right"了没?
之前确实没设置,现在设置了,不过不管是Left还是Right效果都一样,还是没变
从春节就开始了这款播放器的编写。虽然,到目前为止并没有说功能多么强大,更无法比得上那些商业级的音乐播放器,但毕竟是凭借自己能力做的,很知足了。 这款基于WPF的本地音乐播放器,使用到了bass音频库。软件中使用到了网上开放源码的WPF豆瓣音乐播放器中对Bass.Net进行二次封装的库文件,很感谢原作者的无私奉献。 目前这款个人播放实现的功能有: 1、支持常见音频文件播放。快进,曲目切换,播放暂停控制等基本功能均实现。支持通过空格键控制播放、暂停,方向键控制音量,曲目切换。 2、支持四种播放模式:顺序播放(默认),列表循环,单曲播放,单曲循环,随机播放等。 3、音频频谱显示功能,可能会占用较多的CPU资源。可以关闭。 4、支持歌词加载,仅lrc格式歌词有效,支持ANSI, UTF-8两种编码方式。可自动在加载音乐时自动查找同目录下的对应的同名或者包含歌曲名称的歌词文件。当然,也支持手动加载歌词文件。不支持从网络搜索歌词的功能。有能力和时间的可以添加该功能。 5、支持桌面卡拉OK歌词显示效果,可以在右键菜单中关闭掉。播放器主界面中也支持歌词的显示,同样可以通过右键菜单关闭。 6、软件的配置信息默认自动保存。歌曲列表默认自动保存。均可在设置对话框中被取消。 7、支持播放器正常退出时记忆音乐暂停播放的位置,从而在下次启动时可以从断点处继续播放。该功能可以在播放器设置中关闭。 8、支持播放器背景图片的更换。 9、支持“幻灯片”播放。即,支持让背景图片动态切换。右键菜单中可以设置两种播放模式,默认“顺序播放”。该功能可能会比较耗费CPU资源,并且可能会导致播放器透明度为0,此时,只需要开启播放器设置界面,并重新设置透明度即可。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧