我正在尝试使用win32应用程序创建上下文菜单
case WM_RBUTTONDOWN:
{
HMENU hPopupMenu = CreatePopupMenu();
InsertMenu(hPopupMenu, 0, MF_BYPOSITION | MF_STRING, ID_CLOSE, (LPCWSTR)"Exit");
InsertMenu(hPopupMenu, 0, MF_BYPOSITION | MF_STRING, ID_EXIT, (LPCWSTR)"Play");
SetForegroundWindow(hWnd);
TrackPopupMenu(hPopupMenu, TPM_BOTTOMALIGN | TPM_LEFTALIGN, 0, 0, 0, hWnd, NULL);
}Run Code Online (Sandbox Code Playgroud)
但我总是得到如下所示的上下文菜单
alt text http://img191.imageshack.us/img191/866/70219076.png
我希望文本退出和播放显示在菜单中
我正在将Windows应用程序移植到OS X(我们用Java编写它,因此大部分代码都是可移植的),但我目前不确定的是如何在Finder窗口中添加上下文菜单项时用户右键单击某个项目(即我希望在菜单中添加一些项目,其中包含"打开","打开方式","获取信息"等...当用户右键单击时).
我发现的大多数文章专门针对Windows(我搜索过"上下文菜单"和"shell扩展",但我相信我可能会搜索错误的条款),所以我很好奇如何去关于在Mac中添加这个或我应该阅读的文献.
我有一个ContextMenu样式和一个MenuItem样式,它们都在顶层菜单上正常工作.问题是如果我在菜单项中添加子菜单,则子菜单没有正确设置样式.看起来你现在只能设置菜单项的样式,而不是实际的子菜单,所以你不能替换IsMouseOver样式(它只是默认为在Windows上启用的任何主题).
我搜索和搜索过,我能找到的最接近的是MSDN上的论坛帖子http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/69269d23-f97c-42e3-a9dd-0e7c0ba49bdd ?prof = required但它实际上也没有正确回答问题,因为他的例子我遇到了同样的问题.任何帮助,将不胜感激!提前致谢.
编辑:周杰伦,这就是我在做的事情.这是一些代码,在UserControl.Resources中作为我的对象的顶部.
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Background" Value="#0f3c5a"></Setter>
<Setter Property="Foreground" Value="White"></Setter>
<Style.Triggers>
<Trigger Property="IsHighlighted" Value="True">
<Setter Property="Background" Value="Black"></Setter>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="LightGray"></Setter>
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="{x:Type ContextMenu}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ContextMenu}">
<!--Here is where you change the border thickness to zero on the menu-->
<Border BorderThickness="0" x:Name="Border" >
<StackPanel ClipToBounds="True" Orientation="Vertical"
IsItemsHost="True"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="Border" Property="Background" Value="#5082a4" /> …Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的页面编写上下文菜单选项.右键单击div基本上会弹出一个选项菜单,可用于执行任务.
我的问题是试图找到触发所有内容的原始元素(即右键单击的div).
我的jQuery代码更多或更少:
//this is what displays the context menu
$('.outfeedPosition').bind("contextmenu", function (e) {
$('#contextMenu').css({
top: e.pageY + 'px',
left: e.pageX + 'px'
}).show();
//'this' is the element which was clicked by the user.
alert($(this).attr('id'));
return false;
});
//this is the contextMenu's button handler.
$('#ctxDelete').click(function () {
alert('delete was clicked, but i dont know by which element - so I dont know which one to delete');
});
<div id="contextMenu">
<ul>
<li><a id="ctxInsert" href="#">Insert</a></li>
<li><a id="ctxEdit" href="#">Edit</a></li>
<li><a id="ctxDelete" href="#">Delete</a></li>
</ul> …Run Code Online (Sandbox Code Playgroud) 创建上下文菜单时,有没有办法包含标题文本?例如,当用户单击按钮时,我希望上下文菜单显示两个选项.选项上方还应有文字,例如:"请选择一个选项".
这可能吗?
我创建一个这样的上下文菜单:
Run Code Online (Sandbox Code Playgroud)@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { if(v.getId() == R.id.ListView01) { getMenuInflater().inflate(R.menu.add_contextmenu, menu); } super.onCreateContextMenu(menu, v, menuInfo); }
我现在如何设置生成的标题?
与其他希望将项目添加到Windows资源管理器的人不同,我想在我的应用程序中显示上下文菜单.现在你可能在想,你正在寻找的课程是ContextMenu.让我告诉你我有兴趣做什么.请原谅小图片......
这是我目前拥有的:

这就是我希望它:

让我们把假设排除在外.我已经检测到用户安装了TortoiseSVN并且他们选择的项目受源代码管理.
我到目前为止的研究:
检索上下文菜单 - 这非常有用.这是Windows资源管理器的ac#库(可以检索特定文件夹/文件的上下文菜单).但是,即使在测试示例时,它也不会检索TortoiseSVN选项.
另一个上下文菜单检索 - 几乎与前一个链接相同(再次使用C#代码).获取Windows资源管理器上下文菜单减去TortoiseSVN选项.
添加上下文菜单的过程 - 我刚刚开始阅读这些深入的帖子.答案可能在本文中,但我需要一些时间来完成它.如果我有这些运气,我会回复一个答案.
用户似乎能够完成此任务 - 这似乎是一个处理SVN开发的电子邮件组.为什么要在这里发布?也许是为了证明这可以做到.引用:"我正在使用TSVN shell上下文菜单.我正在使用IContextMenu.QueryContextMenu(C++代码)方法访问TSVN shell上下文菜单,然后我将通过返回的菜单进行浏览."
总而言之,这似乎应该是一个相当直接的事情,我只是错过了一步.欢迎任何和所有建议.谢谢!
编辑:尝试更好地利用标签和更集中的标题
我想EditText在长按时更改弹出上下文菜单背景EditText.
我尝试了以下代码,但它不起作用.弹出上下文菜单背景仍未更改.
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="dialogTheme">@style/MyDialogTheme</item>
<item name="popupMenuStyle">@style/MyPopupStyle</item>
</style>
<style name="MyPopupStyle" parent="Widget.AppCompat.PopupMenu">
<item name="android:popupBackground">@color/colorAccent</item>
</style>
<style name="MyDialogTheme" parent="Base.V7.Theme.AppCompat.Dialog">
<item name="android:colorBackground">@color/colorAccent</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我想要的结果是,弹出上下文菜单背景与品红色的强调色相同.我怎样才能实现它?
android contextmenu android-theme android-support-library android-styles
我有一个带有上下文菜单的分页PrimeFaces Datatable,我希望实现多选,其中上下文菜单中的菜单项将取决于所选项目的数量,因为某些操作仅在仅选择一个项目时可用,以及其他人在选择一个或多个时有效.
我的第一个想法是使用单个菜单项的"呈现"选项,它在控制器bean中设置.这种工作,确实显示了正确的菜单项.问题是使用菜单项的渲染功能会导致选择在数据表中丢失,从而破坏了练习的目的.
<p:dataTable id="orders" dynamic="true" var="item" rowKey="#{item.id}" value="#{ordersController.orders}"
emptyMessage="#{uistrings['datatable.nodata']}" paginator="true" paginatorPosition="both"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
paginatorAlwaysVisible="false" rows="10" selectionMode="multiple" selection="#{ordersController.selectedOrders}" widgetVar="orderList">
<p:ajax event="sort" listener="#{ordersController.onSort}" update="orders"/>
<p:ajax event="rowSelect" update="contextMenu"/>
<p:ajax event="rowUnselect" update="contextMenu"/>
<p:column id="balance_date" sortBy="#{item.balanceDate}">
<f:facet name="header">
<h:outputText value="#{uistrings['orders.column.label.balancedate']}"/>
</f:facet>
<h:outputText value="#{item.balanceDate}">
<f:converter converterId="isoDateTimeConverter"/>
<f:attribute name="#{webUiConstBean.ISO_CONVERTER_ATTRIBUTE_TYPE}" value="#{webUiConstBean.ISO_DATE_CLASS}" />
<f:attribute name="#{webUiConstBean.ISO_CONVERTER_ATTRIBUTE_PATTERN}" value="#{webUiConstBean.ISO_DATE_FORMAT}" />
</h:outputText>
</p:column>
<p:column id="recipient_name" sortBy="#{item.recipient.displayName}">
<f:facet name="header">
<h:outputText value="#{uistrings['orders.column.label.recipient.displayName']}"/>
</f:facet>
<h:outputText value="#{item.recipient.displayName}"/>
</p:column>
[snip]
</p:dataTable>
<p:contextMenu id="contextMenu" for="orders">
<p:menuitem value="#{uistrings['orders.menu.details']}" update="details, orders"
oncomplete="detailDialog.show()" icon="ui-icon-search" rendered="#{ordersController.renderDisplayDetails}" />
<p:menuitem …Run Code Online (Sandbox Code Playgroud) 我正在尝试进行扩展并使用chrome.contextMenu.我创建了一个contextMenu元素,它工作正常,但现在我想知道是否可以为我的元素添加键盘快捷键?我查看了文档但找不到任何内容.谢谢!
javascript google-chrome contextmenu google-chrome-extension
contextmenu ×10
android ×2
c# ×2
c++ ×1
css ×1
datatable ×1
html ×1
java ×1
javascript ×1
jquery ×1
macos ×1
menuitem ×1
multi-select ×1
primefaces ×1
styling ×1
title ×1
tortoisesvn ×1
winapi ×1
winforms ×1
wpf ×1