Индикатор выполнения WP8 не отображается

Я поместил элемент управления Progress Bar в свой файл MainPage.xaml. Тип приложения Pivot.

По какой-то причине Progress Bar и TextBlock, которые я разместил внутри PivotItem и ниже Grid, не отображаются. Прямо под этими двумя элементами управления находится LongListSelector. Эти два элемента управления не отображаются из-за этого? В любом случае, я использовал пользовательский интерфейс, чтобы перетащить LongListSelector под ним, поэтому я не уверен, почему он не отображается.

Это XAML:

<phone:Pivot Title="Title" Background="White" Foreground="Black">
    <!--Pivot item one-->
    <phone:PivotItem Header="Header" Foreground="Black">
        <Grid>
            <ProgressBar Name="progressBar" Value="0" IsIndeterminate="True" Margin="0,0,0,579"/>
            <TextBlock Name="txtLastUpdated" FontWeight="Black" FontStyle="Italic" Foreground="Black" Margin="0,24,0,541" />
            <phone:LongListSelector Name="llsLocations" ItemsSource="{Binding}" SelectionChanged="LongListSelector_OnSelectionChanged" Margin="0,62,0,0">
                <phone:LongListSelector.ItemTemplate>
                ...
                ...
                ...

Как видите, над LongListSelector есть ProgressBar и TextBlock, которые также находятся внутри элемента управления Grid.

Любые идеи, почему эти два элемента управления не отображаются?


person Subby    schedule 30.12.2013    source источник
comment
Можете ли вы попробовать использовать индикатор выполнения без текстового блока и LLS?   -  person Fabrice    schedule 30.12.2013


Ответы (2)


Я думаю, что у вас что-то не так с Margin или позиционированием элемента. Я протестировал код ниже, и он работает:

<phone:Pivot Title="Title" Background="White" Foreground="Black">
  <!--Pivot item one-->
  <phone:PivotItem Header="Header" Foreground="Black">
     <Grid>
         <StackPanel Orientation="Vertical" VerticalAlignment="Center">
           <ProgressBar Name="progressBar" Value="0" IsIndeterminate="True" VerticalAlignment="Center" Margin="0"/>
           <TextBlock Name="txtLastUpdated" FontWeight="Black" FontStyle="Italic" Foreground="Black" 
                               HorizontalAlignment="Center" Text="Something"/>
         </StackPanel>
         <phone:LongListSelector Name="llsLocations" ItemsSource="{Binding}" SelectionChanged="LongListSelector_OnSelectionChanged" Margin="0,62,0,0"/>
     </Grid>
 </phone:PivotItem>
</phone:Pivot>
person Romasz    schedule 30.12.2013

Позиция жесткого кодирования элемента управления (особенно путем перетаскивания элементов управления в дизайнере) не является хорошей практикой. Попробуйте определить строки для своей сетки, а затем укажите Grid.Row для элементов управления внутри сетки. Благодаря этому вы можете более аккуратно упорядочить содержимое сетки. Перейдите по этой ссылке, чтобы получить дополнительные примеры и пояснения по размещению элементов управления внутри Grid. Ниже приведен пример для вашей ситуации:

<phone:PivotItem Header="Header" Foreground="Black">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <StackPanel Grid.Row="0">
            <ProgressBar Name="progressBar" Value="0" IsIndeterminate="True" />
            <TextBlock Name="txtLastUpdated" FontWeight="Black" FontStyle="Italic" Foreground="Black" />
        </StackPanel>
        <phone:LongListSelector Grid.Row="1" Name="llsLocations" ItemsSource="{Binding}" SelectionChanged="LongListSelector_OnSelectionChanged" >
            <phone:LongListSelector.ItemTemplate>
        ...
        ...
person har07    schedule 30.12.2013