Почему стекпанель ломает мой сводный просмотрщик? - PullRequest
1 голос
/ 16 марта 2011

У меня есть работающий сводный обозреватель со 128 изображениями автомобилей, которые я собрал сам. Я использовал один из множества учебников в Интернете, чтобы он заработал, и он работает хорошо. Затем я подумал, что мне нужно немного украсить страницу, поэтому я поместил сетку, в которой pv находился внутри ограничительной панели стека, с парой текстовых блоков над ней, чтобы сказать, что такое коллекция. Все отлично загружается, кроме изображений. Закомментируйте строки стековой панели, и она отлично работает.

Есть идеи? Как могло что-то такое простое потерпеть неудачу?

Вот весь код в MainPage.xaml:

<StackPanel>
    <TextBlock
        FontSize="24"
        HorizontalAlignment="Center"
        VerticalAlignment="Top">
        Silverlight Pivotviewer Example
    </TextBlock>
    <TextBlock
        FontSize="16"
        HorizontalAlignment="Center"
        VerticalAlignment="top">
        Cool Automobiles
    </TextBlock>
    <Grid x:Name="LayoutRoot" Background="White">
        <pivoter:PivotViewer x:Name="pivotViewer" />
    </Grid>
</StackPanel>

Ответы [ 3 ]

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

Это известная проблема. StackPanel - это безразмерный элемент. Вам нужно добавить значения ширины и высоты в StackPanel, и PivotViewer начнет работать правильно.

0 голосов
/ 15 ноября 2011

Это то, что мы сделали. Мы добавили обработчик событий к событию SizeChanged в диалоговом окне, а затем измерили размер PivotViewer. Также после события Initialise или Loaded вызовите его тоже ... посмотрите, как вы идете?

  void PivotDialog_SizeChanged( object sender, SizeChangedEventArgs e )
  {
     SizePivotViewer( );
     m_PivotViewer.UpdateLayout( );
  }

  private void SizePivotViewer( )
  {
     m_PivotViewer.Width = ActualWidth;
     m_PivotViewer.Height = ActualHeight - 20; // Magic number so text will display properly at bottom of Pivot!
  }
0 голосов
/ 31 марта 2011

Ваша Сетка, "LayoutRoot", является вашим основным элементом управления макетом. Вы должны обернуть вашу StackPanel в элемент управления Grid.

Примерно так:

<Grid x:Name="LayoutRoot" Background="White"
  <StackPanel>
    <TextBlock
        FontSize="24"
        HorizontalAlignment="Center"
        VerticalAlignment="Top">
        Silverlight Pivotviewer Example />
    <TextBlock
        FontSize="16"
        HorizontalAlignment="Center"
        VerticalAlignment="top">
        Cool Automobiles />
    <pivoter:PivotViewer x:Name="pivotViewer" />
  </StackPanel>
</Grid>

После того, как вы объявите свою сетку, я бы добавил несколько строк, то есть 0, 1, 2. Затем я бы расположил ваши стеки, PivotViewer и т. Д.

Надеюсь, это поможет.

...