How do I make a WPF control to change its size according the content in it?
For most controls, you set its height and width to Auto in the XAML, and it will size to fit its content.
Auto
In code, you set the width/height to double.NaN. For details, see FrameworkElement.Width, particularly the "remarks" section.
double.NaN