Чтобы использовать TransitionFrame из набора инструментов для переходов страниц, а также пользовательский ControlTemplate для отображения индикатора выполнения, необходимо указать TargetType для ControlTemplate как toolkit:Transitionframe
, где toolkit равно определяется как:
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
Остальная проблема в том, что ваш ControlTemplate не указывает части шаблона, которые требуются TransitionFrame
. Требуются две части типа ContentPresenter
с именами FirstContentPresenter и SecondContentPresenter . Измените свой ControlTemplate на следующий, чтобы вернуть переходы страниц назад:
<ControlTemplate x:Key="LoadingIndicatorTemplate" TargetType="toolkit:TransitionFrame">
<Grid x:Name="ClientArea">
<ContentPresenter x:Name="FirstContentPresenter" />
<ContentPresenter x:Name="SecondContentPresenter" />
<Grid x:Name="ProgressGrid"
Background="Black"
Opacity="0.85"
Visibility="Collapsed"
Loaded="ProgressGrid_Loaded">
<StackPanel x:Name="Loading"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Margin="10">
<TextBlock x:Name="tbLoading"
HorizontalAlignment="Center"
Text="Loading"
Style="{StaticResource BoaTextNormalStyle}" />
<toolkit:PerformanceProgressBar x:Name="pbLoading"
HorizontalAlignment="Center"
Width="400"
Margin="10"
IsIndeterminate="False" />
</StackPanel>
</Grid>
</Grid>
</ControlTemplate>
ПРИМЕЧАНИЕ: Джефф Уилкокс PerformanceProgressBar
теперь является частью набора инструментов Silverlight, поэтому вы можете использовать его напрямую, как показано выше.