Какую версию фреймворка вы используете?В 4 у вас есть дополнительные классы в System.Xaml, которые являются более гибкими.Вы можете использовать System.Xaml.XamlServices.Load(stream);
, чтобы получить точный объект Grid в свободном xaml.Однако, используя 4 и 3,5 в VS2010, ваш точный код (во втором фрагменте) возвращает ожидаемый результат.Не уверен, что проблема на вашей стороне, но это может быть не тот код, который вы опубликовали.