Estoy buscando una manera de poder utilizar el elemento de ruta wpf para dibujar una ruta que represente una ruta en el mapa. Tengo la clase Route que contiene una colección de vértices y me gustaría usarla para el enlace. Realmente no sé cómo empezar ... ¿Algún consejo?Trazado de ruta y enlace de datos
Respuesta
Lo principal que necesita para que la unión es un convertidor que convierte sus puntos en Geometry
la que necesitará la ruta como Data
, aquí es lo que mi convertidor de un solo sentido desde un System.Windows.Point
-array a la Geometría es así:
[ValueConversion(typeof(Point[]), typeof(Geometry))]
public class PointsToPathConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
Point[] points = (Point[])value;
if (points.Length > 0)
{
Point start = points[0];
List<LineSegment> segments = new List<LineSegment>();
for (int i = 1; i < points.Length; i++)
{
segments.Add(new LineSegment(points[i], true));
}
PathFigure figure = new PathFigure(start, segments, false); //true if closed
PathGeometry geometry = new PathGeometry();
geometry.Figures.Add(figure);
return geometry;
}
else
{
return null;
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
#endregion
}
Ahora todo lo que queda es crear una instancia de la misma y usarla como convertidor para el enlace. Lo que podría ser similar en XAML:
<Grid>
<Grid.Resources>
<local:PointsToPathConverter x:Key="PointsToPathConverter"/>
</Grid.Resources>
<Path Data="{Binding ElementName=Window, Path=Points, Converter={StaticResource ResourceKey=PointsToPathConverter}}"
Stroke="Black"/>
</Grid>
Si necesita la unión para actualizar automáticamente usted debe trabajar con las propiedades de dependencia o interfaces como INotifyPropertyChanged
/INotifyCollectionChanged
Espero que ayude: D
también se puede tratar de esta manera:
public static class PathStrings
{
public const string Add = "F1 M 22,12L 26,12L 26,22L 36,22L 36,26L 26,26L 26,36L 22,36L 22,26L 12,26L 12,22L 22,22L 22,12 Z";
}
Luego, en el recurso de crear un PathString
<Window.Resources>
<yourNamespace:PathStrings x:Key="pathStrings"/>
</Window.Resources>
continuación, se unen de esta manera:
<Path Stroke="Black" Fill="Black"
Data="{Binding Source={StaticResource pathStrings}, Path=Add}"></Path>
Gracias, tuve problemas con esto durante los últimos 6 años :) – kubal5003
- 1. Gráfico de trazado y trazado en OpenCV
- 2. Trazado temporal TS y omisión de datos de NA
- 3. Trazado de datos contra tiempo en R
- 4. Trazado en tiempo real/registro de datos
- 5. imagen UriSource y enlace de datos
- 6. WPF Image UriSource y enlace de datos usando http: \\ URL
- 7. Datos dinámicos de enlace de datos
- 8. WPF Enlace de cuadrícula de datos y visualización de columna
- 9. capa de enlace de datos y capa de transporte
- 10. Trazado CDF de un conjunto de datos en R?
- 11. ¿Trazado de datos 2D basado en JavaScript de lado abierto?
- 12. trazado de datos de alta dimensión en java
- 13. Trazado de conjuntos de datos muy grandes en R
- 14. Trazado de Python y saltos condicionales
- 15. Enlace de datos con Java
- 16. RESTO con enlace de datos completo de Spring y Jackson
- 17. Trazado y guardado gráfico R
- 18. CMake Pkg-Config Ruta de enlace de biblioteca
- 19. Trazado de mapas temáticos en R Uso de archivos shape y datos de diferentes fuentes
- 20. Cuándo usar la ruta en enlace WPF?
- 21. Matplotlib trazado de datos no uniformes en la superficie 3D
- 22. Envolviendo la función de trazado de R (o ggplot2) para evitar el trazado de grandes conjuntos de datos
- 23. enlace de datos y lanzar una excepción en el colocador
- 24. Knockout y jQuery Mobile: datos de enlace para seleccionar listas
- 25. CRUD simple funciona con WPF y enlace de datos
- 26. ObservableCollection Rendimiento de enlace de datos
- 27. Enlace de datos Propiedades de POCO
- 28. Marcos de enlace de datos Swing
- 29. Especificación de un botón Contenido que tiene una mezcla de texto y una ruta de enlace
- 30. WPF Arquitectura de enlace de datos Pregunta
impresionante. He escrito conversores antes, pero de alguna manera no podría haberlo descifrado. Estaba pensando en usar plantillas o estilos de datos o algo así, pero esta es una gran solución. Gracias. – kubal5003
¡Me alegro de que haya sido útil! –
@PortlandRunner: Es solo una propiedad de tipo 'Point []', la depuración de enlaces individuales no es el alcance de esta respuesta. –