Получить высоту ScrollViewer в Windows Phone

#windows-phone-8.1 #win-universal-app

#windows-phone-8.1 #win-universal-app

Вопрос:

У меня возникли проблемы с ScrollViewer в моем приложении Windows Phone (универсальное приложение).

У меня есть ScrollViewer, подобный следующему:

             <ScrollViewer x:Name="myScrollViewer" Grid.Row="1">
            <StackPanel>

                <TextBlock x:Name="myText"
                           Margin="12"
                           FontSize="30"
                           Text="Lorem Ipsum is simply dummy text of the printing and typesetting industry."
                           TextWrapping="Wrap"
                           />        
                <Rectangle Height="140"
                           Width="400"
                           Fill="Blue"
                           Margin="12"
                           />
                <Rectangle Height="140"
                           Width="400"
                           Fill="Red"
                           Margin="12"
                           />                                        
            </StackPanel>
        </ScrollViewer>
  

Теперь я пытаюсь получить высоту этого ScrollViewer. В коде (внутри конструктора) я пытался:

 double d = myScrollViewer.ActualHeight;

double d = myScrollViewer.ScrollableHeight;

double d = myScrollViewer.Height;
  

Я также пробовал другие методы, относящиеся к высоте, чтобы получить высоту ScrollViewer. Но в каждом случае я получал NULL или 0 в d. Есть ли какой-либо способ, который вернет фактическую высоту или рабочую высоту ScrollViewer?

Комментарии:

1. Что означает «В моем коде в конце cs»? Когда вы пытаетесь получить высоту?

Ответ №1:

Вы должны иметь возможность получить фактическую высоту любого элемента фреймворка после события загрузки страницы. ActualHeight и ActualWidth не устанавливаются во время конструктора или до тех пор, пока элемент управления не будет динамически вычислен / измерен и т.д.

Комментарии:

1. Большое спасибо. Это помогло.