<Grid Width="200" Height="200">
<TextBlock />
</Grid>
Использование сетки исключительно для ограничения TextBox не очень хороший способ установить ширину TextBox. Сетка больше для размещения нескольких элементов управления. Однако это вполне приемлемо:
<Grid Width="200" Height="200">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="1" HorizontalAlignment="Stretch" Margin="5,0" />
</Grid>
Это похоже на то, что предложил @Ahmed.
Как правило, при использовании макета XAML рекомендуется использовать пропорциональный макет, а не фиксированные размеры, чтобы размер пользовательского интерфейса можно было корректно изменить с минимальным контролем любого кода. Это означает, что хорошо, чтобы родительский элемент диктовал размер как можно больше, используя только фиксированные размеры там, где это необходимо. (Настройка MinWidth / MaxWidth / etc подойдет, просто старайтесь избегать явной установки Width, где это возможно, то же самое относится и к свойствам Height).