Започнах разработката на WP7 преди около седмица (и програмирането като цяло) и работих върху малко приложение, но се сблъсках с проблем да накарам ScrollViewer да функционира правилно.
Приложението създава нов обобщен елемент, когато са изпълнени определени условия, и аз се опитвам да добавя текстов блок с възможност за превъртане в него, който показва произволно избрани текстови низове от списък всеки път, когато потребителят докосне екрана, от който някои са достатъчно дълги, за да изискват вертикално превъртане.
// A bit cleaned version of my code,
// had to translate stuff a bit for them to make sense
// Sets the PivotItem header depending on user choice
// and creates ScrollViewer and TextBlock
PivotItem newPivotItem = new PivotItem { Header = choice, Name = "newPivot"};
ScrollViewer newScrollviewer = new ScrollViewer();
TextBlock newTextBlock = new TextBlock { Text = "tap the screen", Name = choice};
newScrollviewer.Content = newTextBlock;
newPivotItem.Content = newScrollviewer;
mainPivot.Items.Add(newPivotItem);
Текстът се добавя в събитието Tap, което просто замества свойството Text с нов низ. Текстът се актуализира добре и по предназначение, но ScrollViever спира да работи след актуализация.
newString = list[rand];
PivotItem selectedPivot = mainPivot.SelectedItem as PivotItem;
TextBlock selectedText = selectedPivot.FindName(choice) as TextBlock;
selectedText.Text = newString;
selectedText.Height = selectedText.ActualHeight;
Подобна комбинация ScrollViewer - TextBlock в друг PivotItem, който е деклариран в xaml, работи добре.