Ваш пользовательский элемент управления указывает значения для свойств "Height" и "Width". Ничему не позволяют переопределить свойства, которые Вы явно установили. Удалите "Высоту" и "Ширину", и контейнер управления сможет смешать с размером.
Вы могли бы хотеть установить разумный "MinHeight" и "MinWidth", чтобы препятствовать тому, чтобы контейнеры хлюпали Вы.
Различные контейнеры делают разные вещи для размера Вашего управления; например, Сетка разворачивает Вас для заполнения ячейки сетки, в которой Вы находитесь, в то время как StackPanel уменьшает Вас к Вашему минимальному размеру. Таким образом, Вы, возможно, должны были бы иметь дело с этим также.
Гораздо проще было бы просто использовать cmd в качестве процесса.
Process test = new Process();
test.StartInfo.FileName = "cmd";
test.StartInfo.Arguments = @"/C ""echo testing | grep test""";
test.Start();
Тогда вы можете записать вывод или что угодно, как и любой обычный процесс. Это был всего лишь быстрый тест, который я создал, но он работает, выводя результаты тестирования на консоль, поэтому я ожидал, что это сработает для всего, что вы планируете делать с трубопроводом. Если вы хотите, чтобы команда оставалась открытой, используйте / K вместо / C, и окно не закроется после завершения процесса.