Код, подобный следующему, работает нормально для меня. Я искал более основанный на шаблонах подход WPF-ih, но я полагаю, что нет ничего плохого в классическом подходе. Это идет в конструкторе элемента управления:
SizeChanged += ( s, e ) => Width = e.NewSize.Height * .5;