你说:
我想通过右键单击 LocatorPane 图形来调用“将图形另存为”。
我还没有找到一种方法来做到这一点,但你可能不知道你可以:
LocatorPane
通过单击对象右侧的空白区域并向左拖动来选择对象。
使用菜单File > Save Selection As...
以您想要的格式保存图形。
我认为正确的选项似乎不起作用:
SetOptions[EvaluationNotebook[],
ComponentwiseContextMenu -> {"GraphicsBox" ->
FEPrivate`FrontEndResource["ContextMenus", "GraphicsBox"],
"Graphics3DBox" ->
FEPrivate`FrontEndResource["ContextMenus", "Graphics3DBox"],
"LocatorPaneBox" ->
FEPrivate`FrontEndResource["ContextMenus", "GraphicsBox"],
"CellGroup" ->
FEPrivate`FrontEndResource["ContextMenus", "CellGroup"],
"CellBracket" ->
FEPrivate`FrontEndResource["ContextMenus", "CellBracket"],
"CellRange" ->
FEPrivate`FrontEndResource["ContextMenus", "CellRange"],
"CellInsertionPoint" ->
FEPrivate`FrontEndResource["ContextMenus", "CellInsertionPoint"]}
];
具体来说, 的值"LocatorPaneBox" ->
已更改为,"GraphicsBox"
但没有明显效果。
另一方面,更改 的值"GraphicsBox" ->
确实会产生影响。
我怀疑因为LocatorPane
使用鼠标输入,它会捕获右键单击尝试,并且永远不会将其传递给上下文菜单机制。也许禁用鼠标作为输入设备LocatorPane
会纠正这个问题,但这似乎并不实际。
这是实现您的使用建议的一种方法"SelectionSaveSpecial"
:
Dynamic[EventHandler[
LocatorPane[{1, 1}/2, Graphics[{Gray, Disk[]}]],
{"MouseClicked", 2} :>
FrontEndExecute[
SelectionMove[EvaluationNotebook[], All, GeneratedCell];
SelectionMove[EvaluationNotebook[], All, CellContents];
FrontEndToken["SelectionSaveSpecial"]
]
]]