Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I created a grid of size 200,200 and placed a button in it of size 200×200.

Grid[{{Button["Button", Null, ImageSize -> {200, 200}]}}, 
       Background -> Red, ItemSize -> {15, 15}, 
       Alignment -> {Center, Center}, Frame -> True]

Mathematica graphics

When I tried increasing the width of the button, the edges on the 2 sides didn't appear as expected, but when I increased the height of the button, the grid itself gets enlarged to the button's height. I don't want this enlargement to happen. How can I avoid it?

share|improve this question
    
Can you provide your code? There are probably a few things happening here but best to see your code first before writing answers. –  Mike Honeychurch Dec 22 '12 at 6:41
    
Grid[{{Button["Button", Null, ImageSize -> {200, 200}]}}, Background -> Red, ItemSize -> {15, 15}, Alignment -> {Center, Center}, Frame -> True] . Try increasing the width and height of the button. –  santhosh Dec 22 '12 at 6:46
    
If you have the button large than the grid cell what are you wanting to see happen? If the grid cell doesn't expand the alternative is for the button to be partially obscured/cut off. You can achieve that with Pane. It is unclear to me what you objective is. –  Mike Honeychurch Dec 22 '12 at 7:13
    
actually, i want a grid within a panel. The panel height also increases when grid height increases.which i don't want. Can i use a pane within a panel. –  santhosh Dec 22 '12 at 7:26
add comment

1 Answer

As the comments suggest, one could use Pane surrounding the Button, but then the alignment doesn't work correctly if the button is too large. So instead I'd use Framed because you don't seem to want the ability to resize the content, just crop it when it's too large:

Grid[{{Framed[Button["Button", Null, ImageSize -> {200, 300}], 
    ImageSize -> {210, 210}, Alignment -> {Center, Center}, 
    FrameMargins -> 0, FrameStyle -> None]}}, Background -> Red, 
 Alignment -> {Center, Center}, Frame -> True]

cropped button

To make this work, I had to specify the size of the item with an explicit ImageSize in Framed, instead of the ItemSize option in Grid. Here the button has been resized to be too large in the vertical direction, and you see that it's still centered but cropped at the top and bottom without changing the cell size.

The alternative of using Pane is especially useful if your plan is to have the content automatically resize to fit the fixed box, because Pane has the option ImageSizeAction -> "ResizeToFit", while Framed doesn't allow that.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.