2010-01-12 22 views
9

Tengo una aplicación Silverlight que agrega una ruta a la cuadrícula LayoutRoot de un UserControl. La geometría del camino es un rectángulo simple.¿Cómo agregar un TextBlock dentro de una ruta de acceso?

Me gustaría poder agregar un TextBlock que está dentro de la ruta de acceso que se agregó a la cuadrícula de LayoutRoot.

También estoy usando un Adorner personalizado para permitirme cambiar el tamaño de la ruta en la pantalla y moverla.

Básicamente, quiero que el padre del TextBlock sea la ruta, de modo que cada vez que muevo la ruta, TextBlock se mueve con ella, y el texto dentro de TextBlock nunca puede salir de los límites de la ruta.

Aquí es un ejemplo de lo que tengo actualmente:

var shape = new ShapeClass((o, u) => { LayoutRoot.Children.Add(o); LayoutRoot.Children.Add(u); }); 

Aquí es el constructor de la clase Shape:

public ShapeClass(Action<Path, TextBlock> insert){} 

Donde 'O' es el objeto Path y 'u' es el TextBlock ...

¿Alguien tiene alguna idea de cómo se puede lograr esto?

Gracias.

Respuesta

5

Coloque la ruta de acceso y el cuadro de texto en una cuadrícula o lienzo, y muévalos en su lugar. De esa forma, los dos controles permanecerán en la misma posición en relación entre sí.

+0

Ok, eso resolverá ese problema, pero la geometría del Camino puede tener la forma de un rectángulo, como se mencionó en mi publicación original, o podría ser en forma de diamante. En el caso de un diamante, si tengo una grilla a la que agrego tanto la ruta como el bloque de texto, y estoy usando textwrapping para el bloque de texto, ¿cómo me aseguraré de que el texto dentro del bloque de texto se mantenga dentro de los límites de la ruta que está ¿un diamante? – Chris

3

Una ruta de acceso no es un control de contenido, por lo tanto, no puede colocar un cuadro de texto dentro de ella.

Si está utilizando un rectángulo simple, entonces ¿por qué no usar un control de borde?

Cuestiones relacionadas