2010-06-30 7 views
8

Ho un TextBlock e una Textbox nella stessa posizione. A seconda della modalità in cui si trova l'utente, ne creo uno visibile e l'altro collassato. Funziona bene, ma come posso far scorrere il Textblock? Ho pensato che dovrei usare un ScrollViewer, ma non so perché non funzioni. Ho provato a scherzare con l'altezza (automatica e fissa), ma non scorrerà. Il mio xaml è questo:Scrolling a TextBlock

<ScrollViewer x:Name="detailsScroller" Height="285" Width="480" Canvas.Top="76" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"> 
    <Canvas x:Name="infoCanvas" Width="478" > 
    <TextBlock x:Name="textblockInfo" TextWrapping="Wrap" Width="462" Height="197" Canvas.Left="8"/> 
    <TextBox x:Name="textboxInfo" TextWrapping="Wrap" Width="478" AcceptsReturn="True" Height="300" Visibility="Collapsed" /> 
    </Canvas> 
</ScrollViewer> 

Grazie!

risposta

2

Come si potrebbe fare riferimento alla discussion e MSFT confirmation che il controllo di testo a scorrimento è ancora un work in progress, come presso il CTP corrente. Beta non dovrebbe essere troppo lontano, si spera di più su questo allora.

+0

Grazie, spero che rilasciano presto un aggiornamento perché continuo a dover rimandare aspetti della mia applicazione. – Skoder

0

Se si desidera far scorrere il contenuto, assicurarsi che sia visibile una barra di scorrimento.

<TextBox Text="{Binding SomethingReallyLong}" 
TextWrapping="Wrap" 
VerticalScrollBarVisibility="Visible"/>   
+0

Siamo spiacenti, dimenticato di dire, questo è per Windows Phone 7. Ho modificato le mie etichette originali. La visualizzazione della barra di scorrimento non funziona in quanto rende la casella di testo modificabile e il testo non scorre. – Skoder

1

Il seguente codice funziona: Come il controllo figlio (ad esempio, blocco di testo) ha un'altezza e una larghezza che non è uguale alla larghezza e all'altezza del visualizzatore di scorrimento e quindi le barre di scorrimento non vengono visualizzate. Ho appena dato la stessa altezza e larghezza di come funziona il visore scroll per i controlli definiti al suo interno.

<ScrollViewer x:Name="detailsScroller" Height="285" Width="480" Canvas.Top="76" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"> 
    <Canvas x:Name="infoCanvas" Height="285" Width="480" > 
    <TextBlock x:Name="textblockInfo" TextWrapping="Wrap" Height="285" Width="480" Canvas.Left="8"/> 
    <TextBox x:Name="textboxInfo" TextWrapping="Wrap" Width="478" AcceptsReturn="True" Height="300" Visibility="Collapsed" /> 
    </Canvas> 
</ScrollViewer> 
+0

Grazie ho provato il codice, ma si è mosso solo leggermente. Non potevo scorrere senza problemi fino alla fine. Immagino sia una limitazione di corrente. – Skoder

23

Non mettere un altezza nella casella di testo. questo ha funzionato perfettamente per me:

<ScrollViewer Height="192" HorizontalAlignment="Left" Margin="12,34,0,0" Name="scrollViewer1" VerticalAlignment="Top" Width="404"> 
     <TextBlock VerticalAlignment="Top" Name="textBlock1" Text="TextBlock" Width="378" TextWrapping="Wrap" /> 
    </ScrollViewer> 
+0

grazie! questo era esattamente quello di cui avevo bisogno !!! –

+0

Ottimo! Ero pazzo! Grazie! – Frank