Bound WrapPanel width to parent StackPanel ActualWidth. It now wraps correctly.