Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Wpf control size to content?

How do I make a WPF control to change its size according the content in it?

like image 768
Shimmy Weitzhandler Avatar asked Nov 17 '09 03:11

Shimmy Weitzhandler


2 Answers

For most controls, you set its height and width to Auto in the XAML, and it will size to fit its content.

In code, you set the width/height to double.NaN. For details, see FrameworkElement.Width, particularly the "remarks" section.

like image 182
Reed Copsey Avatar answered Oct 20 '22 13:10

Reed Copsey


I had a problem like this whereby I had specified the width of my Window, but had the height set to Auto. The child DockPanel had it's VerticalAlignment set to Top and the Window had it's VerticalContentAlignment set to Top, yet the Window would still be much taller than the contents.

Using Snoop, I discovered that the ContentPresenter within the Window (part of the Window, not something I had put there) has it's VerticalAlignment set to Stretch and can't be changed without retemplating the entire Window!

After a lot of frustration, I discovered the SizeToContent property - you can use this to specify whether you want the Window to size vertically, horizontally or both, according to the size of the contents - everything is sizing nicely now, I just can't believe it took me so long to find that property!

like image 45
TabbyCool Avatar answered Oct 20 '22 13:10

TabbyCool