这是我想要做的一个示例:在 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 help 在解释某些事情时不要那么简短)。
在上面,请注意它说:除非 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]
我对此很满意。顶角出现的小白线似乎 是这个的副作用。我想我必须忍受它。
最佳答案
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->False
不会改变这一点。看来 Manipulate 无论如何都想绘制一个内容区域。 AppearanceElements
选项似乎记录不完整/不完整。以下是有效的选项,尽管可能还有其他我不知道的选项:
{"ContentResizeArea", "HideControlsButton", "ManipulateMenu", "SnapshotButton",
"ResetButton", "UpdateButton", "BookmarksButton", All, None}
关于wolfram-mathematica - 当ContentSize不适合Manipulate中的内容时,如何不显示滚动条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8556234/