none
desplazamiento en un text block RRS feed

  • 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

    domingo, 22 de julio de 2012 20:45

Respuestas

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
    lunes, 23 de julio de 2012 10:00
  • 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


    lunes, 23 de julio de 2012 15:56