有没有办法使用Javascript将自定义字段添加到内置浏览器上下文菜单中?
我知道flash/actionscript可以做到这一点,他们是怎么做到的?示例:右键单击http://josephjewell.com并查看自定义上下文菜单.
这可能与纯JavaScript或你必须使用闪存吗?
注意,我正在寻找添加到内置浏览器上下文菜单,而不是使用自定义JavaScript弹出窗口来模仿它们.
我想为自定义View显示ContextMenu,它不是AdapterView的一部分.
我打了电话
myActivity.registerForContextMenu(myView);
Run Code Online (Sandbox Code Playgroud)
并且ContextMenu已经显示出来.
但我不知道如何访问myView的数据
@Override
onContextItemSelected(MenuItem item) //...
Run Code Online (Sandbox Code Playgroud)
我以为我可以创建一个自定义menuInfo
@Override
onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) //...
Run Code Online (Sandbox Code Playgroud)
这来自文档:"menuInfo - 有关应显示上下文菜单的项目的额外信息.此信息将根据v的类别而有所不同."
任何人都可以给我一个提示吗?
另一个新手问题.我有一个上下文菜单,我申请ListView,只允许用户上下移动项目,或删除项目.
我在onContextItemSelected()中有代码以防止事物向上移动到列表的顶部或底部等,但是我宁愿首先隐藏上下文菜单项,如果(例如)列表中的顶部项目是选择.
我假设我需要在onCreateContextMenu中执行此操作,但我不确定如何操作.
这是我的onCreateContextMenu代码:
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mycontextmenu, menu);
}
Run Code Online (Sandbox Code Playgroud)
谢谢,
wTs
我创建了一个简单的应用程序,只显示一个AlertDialog,列表中有四个项目.我注册了一个上下文菜单.当我长按其中一个项目时,我会看到上下文菜单.然后我从上下文菜单中选择一个项目,但onContextItemSelected永远不会被调用.有帮助吗?谢谢.
test.java:
package com.cerulean.tech.creations.test;
import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
public class test extends Activity {
private String[] files;
AlertDialog alert;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
files = new String[4];
}
public void selectScheme(View v) {
files[0] = "<New Scheme>";
files[1] = "test1";
files[2] = "test2";
files[3] = "test3";
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setItems(files, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) { …
Run Code Online (Sandbox Code Playgroud) 我有一些代码使用带有TB_GETBUTTON消息的User32.SendMessage从Windows TaskBar中获取TaskBar按钮及其文本,以检索TBBUTTON结构(通过C#P/Invokes的Win32 API).但是我想弄清楚如何,一旦我有按钮的句柄,抓住相关的上下文菜单文本.对于我想要检索的特定应用程序,有一些状态信息.按钮文本给我一些,但我需要上下文菜单文本来完成它.
有任何想法吗?
有时使用标准活动方法来创建ContextMenu是不方便的(因为在一个活动中可能有很多地方但在不同的类中需要显示上下文菜单).
但是从任何地方创建对话框都很容易.如何创建与ContextMenu完全相同的对话框?我在哪里可以找到标准上下文菜单的布局或类似的东西?
我想使用C#创建一个上下文菜单,它将显示在节点旁边,类似于Visual Studio中的内容:
我现在的代码导致主窗体闪烁.
private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
var myForm = new Form {Text = "My Form"};
myForm.SetBounds(10, 10, 200, 200);
myForm.Show();
// Determine if the form is modal.
if (myForm.Modal == false)
{
// Change borderstyle and make it not a top level window.
myForm.FormBorderStyle = FormBorderStyle.FixedToolWindow;
myForm.TopLevel = false;
}
}
}
Run Code Online (Sandbox Code Playgroud) 我们有一个应用程序,它同步文件和文件夹,就像Dropbox一样.这是一个基于c ++/QT的安装程序.
我们想在文件或文件夹的右键单击上下文菜单中添加自定义菜单,就像Dropbox在下面的屏幕截图中所做的那样.
我们的目标是Windows和Mac平台.任何人都可以建议我如何开始吗?
如何将ContextMenu添加到ItemsControl,其中:
我遵循这种方法.但是,我有一个Command,它从绑定到ItemsControl的ObservableCollection中删除项目.发生这种情况时,会在RelayCommand中抛出异常.在我看来,ContextMenu不是"隐藏",所以它试图为其命令评估"CanExecute",但是当项目被删除时,它不能在RelayCommand的CanExecute方法中将参数强制转换为"T"类.
我想知道如何完成我需要的正确方法.
到目前为止我的实施:
MainViewModel
public class MainViewModel
{
public ObservableCollection<MyContextMenuClass> ContextMenuItems{ get;set; }
public ObservableCollection<MyItemClass> MyItems{ get;set; }
public void AddItem(MyItemClass item)
{
MyItems.Add(item);
}
public void AddContextMenuItem(MyContextMenuClass item)
{
ContextMenuItems.Add(item);
}
public MainViewModel(IList<MyItemClass> myItems, IList<MyContextMenuClass> myContextualMenuItems)
{
MyItems.AddRange(myItems);
ContextMenuItems.AddRange(myContextualMenuItems);
}
public MainViewModel()
{}
}
Run Code Online (Sandbox Code Playgroud)
MyItemClass
public class MyItemClass
{
public string MyText{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
MyContextMenuClass
public class MyContextMenuClass
{
public RecentContextMenuItem()
{}
public string Caption{get;set;}
public RelayCommand<MyItemClass> Command{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我的UserControl(DataContext = MainViewModel)
<UserControl …
Run Code Online (Sandbox Code Playgroud) 我创建了锐利的shell扩展,用于使用.Net自定义Windows的右键菜单上下文.该项目的结果是.dll.我尝试使用服务器管理器工具安装和注册它,该工具与尖锐的shell工具一起存在并且它成功运行.现在我需要从我的wix项目安装并注册这个shell扩展,因为我需要用户安装我的应用程序并在安装后获得自定义窗口的右键单击上下文菜单.
我需要详细的步骤,因为我是使用Wix安装程序的新手.