Frame не использует переходы Toolkit с ProgressBar внутри шаблона Frame - PullRequest
1 голос
/ 08 апреля 2011

Я переключаюсь на использование ProgressBar / Grid во фрейме моего приложения вместо Popup.Я использовал этот пост переполнения стека, чтобы заставить его работать: Динамический индикатор выполнения в WP7

Однако, когда я использую пример, у меня больше нет переходов страниц.Мне будет трудно гарантировать его использование, если переходы страниц не будут работать должным образом.Я что-то упускаю?Я попытался установить TargetType на "TransitionFrame", но это не работает должным образом и выдает исключение XAML разбора (для пространства имен Microsoft.Phone.Controls.PhoneApplicationPages)

<ControlTemplate x:Key="LoadingIndicatorTemplate" TargetType="toolkit:TransitionFrame" >
                            <Grid x:Name="ClientArea">
                                <ContentPresenter />
                                <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 HorizontalAlignment="Center" Name="tbLoading" Text="Loading" Style="{StaticResource TextNormalStyle}" />
                                        <ProgressBar Style="{StaticResource PerformanceProgressBar}" HorizontalAlignment="Center" Name="pbLoading" Width="400" Margin="10" IsIndeterminate="False" />
                                    </StackPanel>
                                </Grid>
                            </Grid>
                    </ControlTemplate>

Ответы [ 2 ]

2 голосов
/ 14 апреля 2011

Чтобы использовать 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, поэтому вы можете использовать его напрямую, как показано выше.

0 голосов
/ 08 апреля 2011

Если вы помещаете индикатор выполнения в рамку, но затем анимируете страницу, анимация не будет включать индикатор выполнения.

Почему бы просто не поместить индикатор прогресса на страницу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...