操纵:间距和背景

500*_*500 5 wolfram-mathematica

请考虑 :

 Manipulate[Rasterize[Graphics[{
    Black, Rectangle[{0, 0}, {6, 10}],
    Red, Rectangle[{0, 0}, {2, L}],
    Green, Rectangle[{2, 0}, {4, M}],
    Blue, Rectangle[{4, 0}, {6, S}]},
    ImageSize -> {200, 270},
    ImageSize -> 50]],
    Control@{{L, 1, Style["L", Red, Bold, 24]}, Range[10], 
    ControlType -> Slider, ControlPlacement -> Top, 
    DefaultBaseStyle -> {Bold, 16, FontFamily -> "Helvetica"}, 
    Appearance -> "Labeled", ImageSize -> 200},
    Control@{{M, 1, Style["M", Green, Bold, 24]}, Range[10], 
    ControlType -> Slider, ControlPlacement -> Top, 
    DefaultBaseStyle -> {Bold, 16, FontFamily -> "Helvetica"}, 
    Appearance -> "Labeled", ImageSize -> 200},
    Control@{{S, 1, Style["S", Blue, Bold, 24]}, Range[10], 
    ControlType -> Slider, ControlPlacement -> Top, 
    DefaultBaseStyle -> {Bold, 16, FontFamily -> "Helvetica"}, 
    Appearance -> "Labeled", ImageSize -> 200}]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 我可以更改背景颜色:黑色而不是白色.

  • 为什么右边有这么多的空地.我从来没有能够将滑块大小与Manipulate的宽度相匹配,只是包含所包含的图形?

abc*_*bcd 5

如果你Paneled -> False进入Manipulate,它会收缩周围的空白区域Graphics.通过在Graphics[...]命令中正确设置,可以轻松地将剩余的白色设置为具有不同的背景.您还可以通过在BaseStylefor中设置背景来设置外部面板的样式Manipulate.以下是对代码的略微修改:

Manipulate[
 Graphics[{Black, Rectangle[{0, 0}, {6, 10}], Red, 
   Rectangle[{0, 0}, {2, L}], Green, Rectangle[{2, 0}, {4, M}], Blue, 
   Rectangle[{4, 0}, {6, S}]}, ImageSize -> {200, 300}, 
  Background -> LightOrange], 
 Control@{{L, 1, Style["L", Red, Bold, 24]}, Range[10], 
   ControlType -> Slider, ImageSize -> Small, ControlPlacement -> Top,
    DefaultBaseStyle -> {Bold, 16, FontFamily -> "Helvetica"}, 
   Appearance -> "Labeled"}, 
 Control@{{M, 1, Style["M", Green, Bold, 24]}, Range[10], 
   ControlType -> Slider, ImageSize -> Small, ControlPlacement -> Top,
    DefaultBaseStyle -> {Bold, 16, FontFamily -> "Helvetica"}, 
   Appearance -> "Labeled"}, 
 Control@{{S, 1, Style["S", Blue, Bold, 24]}, Range[10], 
   ControlType -> Slider, ImageSize -> Small, ControlPlacement -> Top,
    DefaultBaseStyle -> {Bold, 16, FontFamily -> "Helvetica"}, 
   Appearance -> "Labeled"}, BaseStyle -> {Background -> LightPurple},
  Paneled -> False, ImageMargins -> 10]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在我之前的例子中我没有注意到标签已经略微向上移动了.无论如何,belisarius的使用建议ImageSize -> Small更简单,所以我采用了它.

  • @yoda我已经找到了原因:`Background`选项不起作用,因为`Manipulate`的默认`Paneled-> True`.像上次编辑一样将它设置为"False"会使`Background`正常工作! (2认同)