В silverlight вы можете сделать это с помощью пользовательского элемента управления с шириной и высотой, установленными в «Авто». У вас будет какой-то элемент управления, так как LayoutRoot с шириной и высотой также имеет значение auto, и в нем ваш индикатор выполнения будет центрирован в центре (HorizontalAlignment = Center). Затем вы должны установить непрозрачность LayoutRoot равной 0,5 или как вам нравится
Затем, когда вы встраиваете элемент управления в XAML для своей формы, вы устанавливаете его горизонтальное выравнивание и вертикальное выравнивание растягивающимся. Это приводит к тому, что корень макета элемента управления растягивается, чтобы заполнить вашу форму, и из-за его непрозрачности ваша форма становится полупрозрачной. Поскольку ваш индикатор выполнения не настроен на растяжение, он останется в центре.
Я полагаю, что в WPF то же самое
Пример управления:
<UserControl x:Name="MyControl" width="Auto" Heigh="Auto">
<Grid x:Name="LayoutRoot" Background="#AFFFFFFF" Width="Auto" Height="Auto" Opacity="0.01" >
<ProgressBar Height="10" VerticalAlignment="Center" HorizontalAlignment="Center" Width="195" IsIndeterminate="True" Background="Black" Foreground="#FFFF0009">
</ProgressBar>
</Grid>
</UserControl>
Пример использования:
<MyControl HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />