Часть текста не отображается после изменения анимации расположения StackPanel - PullRequest
0 голосов
/ 08 марта 2011

У меня есть проект Windows Phone 7 со страницей, которая имеет следующую структуру:

  • У меня есть scrollviewer и стековая панель внутри, называемая главной стековой панелью
  • в основной стековой панелипара стековых панелей с горизонтальной ориентацией
  • горизонтальные стековые панели имеют несколько текстовых блоков, каждый из которых содержит одну букву

иногда горизонтальная стековая панель содержит больше букв, чем умещается на экране телефона.Время от времени мне нужно показывать группу букв, которые находятся за пределами экрана.Чтобы показать эти буквы, мне нужно переместить панель стека, чтобы буквы стали видны на экране.Когда я закончу анимацию, буквы, которые перемещены на экран, вообще не видны.

Что я должен сделать, чтобы это было видно?

Я добавил скриншот и псевдо-xaml своей страницы, чтобы продемонстрировать структуру.Я надеюсь, это поможет!enter image description here

<Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <ScrollViewer VerticalScrollBarVisibility="Disabled">
        <StackPanel x:Name="MainStackPanel" Margin="12,0,12,-177" Grid.RowSpan="2" RenderTransformOrigin="0.5,0.5" >
            <StackPanel x:Name="stackPanel" Orientation="Horizontal" Width="580" RenderTransformOrigin="0.5,0.5">
             <StackPanel.RenderTransform>
              <CompositeTransform/>
             </StackPanel.RenderTransform>
                <TextBlock Style="{StaticResource LetterStyle1}" VerticalAlignment="Stretch"><Run Text="e"/></TextBlock>
                <TextBlock Style="{StaticResource LetterStyle1}" VerticalAlignment="Stretch"><Run Text="u"/></TextBlock>
                ... many more textblock each containing a letter 
            </StackPanel>
            <StackPanel Orientation="Horizontal">
                <TextBlock Style="{StaticResource LetterStyle1}" VerticalAlignment="Stretch"><Run Text="e"/></TextBlock>
                <TextBlock Style="{StaticResource LetterStyle1}" VerticalAlignment="Stretch"><Run Text="u"/></TextBlock>
                ... many more textblock each containing a letter 
            </StackPanel>

1 Ответ

1 голос
/ 08 марта 2011

К счастью, мне удалось найти решение.Проблема в том, что некоторые из горизонтальных стековых панелей были шире, чем MainStackPanel.

Изменение MainStackPanel и ScrollViewer на ширину по ширине решает проблему.

 <ScrollViewer VerticalScrollBarVisibility="Disabled" Margin="0,0,-106,0">
        <StackPanel x:Name="MainStackPanel" Margin="12,0,12,-177" Grid.RowSpan="2" RenderTransformOrigin="0.5,0.5" >
...