这是我想要做的一个例子:在Manipulate自身的控制区域中进行所有显示:
Manipulate[
p = Framed@
Plot[Sin[x],{x, -y, y},ImageSize->300,Background-> White, ImagePadding -> 20];
{},
Grid[{
{Control[{{y, N@Pi/2, "y"}, -Pi, Pi, Appearance -> "Labeled"}]},
{Dynamic@p}
}],
ControlPlacement -> Left,
Alignment -> Center,
ImageMargins -> 1,
FrameMargins -> 1,
ContentSize -> {0}
]
问题在于M会自动添加滚动条:
帮助说
If ContentSize specifies a content area that does not completely fit
the contents, then unless specified otherwise with AppearanceElements,
functions like Manipulate display a resize area, as well as scrollbars
when necessary.
问题是,如何使用AppearanceElements删除此滚动条?
(我希望有时M帮助在解释某些内容时不会那么短暂而且简短。)
在上面,请注意:unless specified otherwise with AppearanceElements
,
但我无法弄清楚这意味着什么。 “否则”是什么
应该是什么意思?
我最接近的是将AppearanceElements -> ""
添加到上面。所以新的
版本现在变为
Manipulate[
p = Framed@
Plot[Sin[x], {x, -y, y}, ImageSize -> 300, Background -> White,
ImagePadding -> 20];
{},
Grid[{
{Control[{{y, N@Pi/2, "y"}, -Pi, Pi, Appearance -> "Labeled"}]},
{Dynamic@p}
}],
ControlPlacement -> Left,
Alignment -> Center,
ImageMargins -> 1,
FrameMargins -> 1,
ContentSize -> {0},
AppearanceElements -> "" (*added this *)
]
但请注意,尺寸不是很正确,它应该更紧, 我也失去了曾经存在的'+'。我必须保持这一点。
所以,我认为我需要的只是找到'+'的元素名称,所以我可以使用
正确的AppearanceElements -> "correctNameHere"
,我希望这一点
会做正确的事。 (我试过“关闭”,但没有这样做,我也失去了'+')
我找不到'+'元素名称是什么。有人知道吗?
以下是可以找到更多相关信息的地方:
http://reference.wolfram.com/mathematica/ref/Manipulator.html
http://reference.wolfram.com/mathematica/ref/ContentSize.html
所以,问题是:如何完全删除显示的滚动条效果 上面,但同时保持右上角的“+”。
感谢
更新2
感谢下面的答案,下面是结果的屏幕截图。
Manipulate[
p = Framed@
Plot[Sin[x], {x, -y, y}, ImageSize -> 300, Background -> White,
ImagePadding -> 20];
{}, Grid[{{Control[{{y, N@Pi/2, "y"}, -Pi, Pi,
Appearance -> "Labeled"}]}, {Dynamic@p}}],
AppearanceElements -> "BookmarksButton", ControlPlacement -> Left,
Alignment -> Center, ImageMargins -> 1, FrameMargins -> 1,
ContentSize -> {0}, Alignment -> Center]
我很高兴。在顶角显示的小白线似乎 是一个副作用。我猜不得不活下去。
答案 0 :(得分:2)
AppearanceElements -> "BookmarksButton"
正是您要找的。文档(AppearanceElements
)中Manipulate
的其他ref/Manipulate
为{"HideControlsButton", "SnapshotButton", "ResetButton",
"UpdateButton", All}
将Paneled->False
添加为Manipulate
的选项可以摆脱白框。通过将Manipulate
与Panel
一起打包,您可以获得所需内容:
Manipulate[ p = Framed@Plot[Sin[x], {x, -y, y}, ImageSize -> 300,
Background -> White, ImagePadding -> 20]; {},
Grid[{{Control[{{y, N@Pi/2, "y"}, -Pi, Pi,
Appearance -> "Labeled"}]}, {Dynamic@p}}],
AppearanceElements -> "BookmarksButton", ControlPlacement -> Left,
Alignment -> Center, ImageMargins -> 1, FrameMargins -> 0,
ContentSize -> {0}, Paneled->False ]//Panel
答案 1 :(得分:2)
Manipulate[
p = Framed@
Plot[Sin[x], {x, -y, y}, ImageSize -> 300, Background -> White,
ImagePadding -> 20];
{}, Grid[{{Control[{{y, N@Pi/2, "y"}, -Pi, Pi,
Appearance -> "Labeled"}]}, {Dynamic@p}}]
, AppearanceElements -> "ManipulateMenu", ControlPlacement -> Left,
Alignment -> Center, ImageMargins -> 1, FrameMargins -> 0,
ContentSize -> {0} ]
设置FrameMargins->0
摆脱了白线(无论如何在Mac上),但仍然留下了Frame线。 Frame->False
不会改变这一点。似乎Manipulate想要绘制一个内容区域,无论如何。 AppearanceElements
选项似乎不完整/文档记录不清。以下是有效选项,但可能还有其他我不知道的选项:
{"ContentResizeArea", "HideControlsButton", "ManipulateMenu", "SnapshotButton",
"ResetButton", "UpdateButton", "BookmarksButton", All, None}