Principales respuestas
desplazamiento en un text block

Pregunta
-
Buenos dias,
estoy haciendo una aplicacion en la que tengo un texto largo, el cual no entra en la pantalla. ¿Como puedo hacer para que con un tamaño de letra normal pueda leer todo? Mi idea seria poder añadir el que se desplace al moverlo con el dedo, pero ¿como se hace?
Muchas gracias
Respuestas
-
Hola jeremías.
Para lo que comentas, tendrás que poner tu TextBlock dentro de un ScrollViewer.
Al ScrollViewer le fijas el alto que quieras que tenga y el contenido interior, es decir, tu textblock con alto automático. De esa forma, tendrás tu texto con Scroll
http://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer(v=vs.95).aspx
"En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"- Propuesto como respuesta aZubi lunes, 23 de julio de 2012 10:46
- Marcado como respuesta jeremias1875 sábado, 4 de agosto de 2012 18:47
Todas las respuestas
-
Hola jeremías.
Para lo que comentas, tendrás que poner tu TextBlock dentro de un ScrollViewer.
Al ScrollViewer le fijas el alto que quieras que tenga y el contenido interior, es decir, tu textblock con alto automático. De esa forma, tendrás tu texto con Scroll
http://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer(v=vs.95).aspx
"En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"- Propuesto como respuesta aZubi lunes, 23 de julio de 2012 10:46
- Marcado como respuesta jeremias1875 sábado, 4 de agosto de 2012 18:47
-
Hola Jeremias,
Santiago te ha propuesto una solucion sencilla y que te puede servir,
yo te pongo otra que es la que utilizo en mis desarrollos para los textos que no me entran en un bloque de texto
en el xaml
-----------------------------------------------
<Canvas Name="canvasTwitter"
Width="140"
Height="30">
<TextBlock x:Name="txtTwitter"
Text="{Binding Instance.TextosBase.Twitter_PageTitle, Mode=OneWay, Source={StaticResource GlobalizacionBase}}"
HorizontalAlignment="Left"/>
</Canvas>---------------------------------------------
en el code behind
la llamada al TextTicker
-----------------------------------
TextTicker textTickerWeb = new TextTicker(canvasWeb, txtTwitter, 7);
textTickerWeb.RightToLeftTicker();------------------------------------
el code behind de la clase TextTicker
public class TextTicker
{
public Canvas canvas { get; set; }
public TextBlock textBlock { get; set; }
public double AnimationDuration { get; set; }
public TextTicker(Canvas can, TextBlock text, double duration)
{
canvas = can;
textBlock = text;
AnimationDuration = duration;
}
public void RightToLeftTicker()
{
RectangleGeometry rectangleGeometry = new RectangleGeometry();
rectangleGeometry.Rect = new Rect(new Point(0, 0), new Size(canvas.Width, canvas.Height));
canvas.Clip = rectangleGeometry;
double height = canvas.Height - textBlock.ActualHeight;
textBlock.Margin = new Thickness(0, height / 2, 0, 0);
DoubleAnimation doubleAnimation = new DoubleAnimation();
doubleAnimation.From = canvas.Width;
doubleAnimation.To = -textBlock.ActualWidth;
doubleAnimation.RepeatBehavior = RepeatBehavior.Forever;
doubleAnimation.Duration = new Duration(TimeSpan.FromSeconds(AnimationDuration));
Storyboard storyboard = new Storyboard();
storyboard.Children.Add(doubleAnimation);
Storyboard.SetTarget(doubleAnimation, textBlock);
Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("(Canvas.Left)"));
storyboard.Begin();
}}
------------------------
espero te sirva, un saludo
windowsphoneando koldo.artola apps market