2010-06-30 12 views
8

Mam blokadę tekstu i pole tekstowe w tej samej lokalizacji. W zależności od trybu, w którym znajduje się użytkownik, robię jeden widoczny, a drugi zwinięty. Działa to dobrze, ale jak mogę przewinąć Textblock? Pomyślałem, że powinienem użyć ScrollViewera, ale nie wiem, dlaczego to nie działa. Próbowałem się bawić z wysokością (automatyczne i naprawione), ale nie przewija. Mój xaml to:Przewijanie obiektu 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> 

Dzięki!

Odpowiedz

2

Można odnieść się do discussion i MSFT confirmation że kontrola tekst przewijanie jest nadal w toku, jak na obecnym CTP. Beta nie powinna być zbyt daleko, mam nadzieję, że więcej na ten temat.

+0

Dzięki, mam nadzieję, że wkrótce wydadzą odświeżenie, ponieważ będę musiał odkładać aspekty mojej aplikacji. – Skoder

0

Jeśli chcesz przewinąć zawartość, upewnij się, że pasek przewijania jest widoczny.

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

Niestety, zapomniałem wspomnieć, to jest dla Windows Phone 7. Mam edytowanej moje oryginalne metki. Wyświetlanie paska przewijania nie działa, ponieważ po prostu sprawia, że ​​pole tekstowe można edytować, a blok tekstu nie jest również przewijany. – Skoder

1

Poniższy kod działa: Ponieważ kontrolka podrzędna (np. Blok tekstu) ma wysokość i szerokość, która nie jest równa szerokości i wysokości przeglądarki przewijania, a tym samym paski przewijania nie są wyświetlane. Właśnie podałem tę samą wysokość i szerokość co przeglądarka przewijania dla kontrolek zdefiniowanych wewnątrz niego, działa.

<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

Dzięki temu wypróbowałem kod, ale tylko nieznacznie się przesunął. Nie mogłem przewijać płynnie aż do końca. Sądzę, że to jest obecne ograniczenie. – Skoder

23

nie Czy umieścić wysokość w polu tekstowym. To działało idealnie dla mnie:

<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

dziękuję! to było dokładnie to, czego potrzebowałem !!! –

+0

Świetnie! Byłem szalony! Dzięki! – Frank

Powiązane problemy