Я не знаю прямого способа сделать это, поскольку WPF автоматически передает доступное пространство в функцию Measure () дочерних элементов управления, чтобы их размер соответствовал доступному пространству.
Обратите внимание, что по умолчанию он проходит в бесконечности для вертикального направления, поскольку содержимое может прокручиваться вечно по вертикали. Вы можете изменить видимость полос прокрутки как в вертикальном, так и в горизонтальном направлении, чтобы определить, будет ли бесконечность проходить по вертикали, по горизонтали или по обеим.
Лучший способ выяснить, насколько широкими должны быть дочерние элементы управления в макете в чистом XAML, - создать пустой элемент управления, например пустую сетку, и затем привязать его свойство ActualWidth:
<ScrollViewer>
<StackPanel>
<Grid x:Name="MeasureGrid"/>
<TextBox Text="{Binding ElementName=MeasureGrid, Path=ActualWidth}"/>
</StackPanel>
</ScrollViewer>
Кроме отображения ширины, которая фактически доступна для элементов управления, я не вижу другого использования этой информации в XAML - все другие сценарии, о которых я могу подумать, могут использовать эту информацию неявно. Можете ли вы дать нам больше информации о том, чего вы пытаетесь достичь?