Вам нужен элемент управления, который будет возвращать (0,0) из MeasureOverride . Canvas сделает это, но может не иметь другого поведения, которое вы хотите.Вы также можете создать подкласс существующей панели, такой как Grid, и просто вернуть пустой размер:
public class ZeroGrid
: Grid
{
protected override Size MeasureOverride(Size constraint)
{
base.MeasureOverride(constraint);
return new Size();
}
}
Это будет вести себя как Grid, поэтому его содержимое будет растягиваться до его фактического размера, но оно всегда будетDesiredSize от нуля, поэтому он не повлияет на SizeToContent.