Tengo una herramienta personalizada para mover las características que implementa IDisplayFeedback y la geometría específica de las Coclases a mostrar al usuario donde se están moviendo en la entidad.
IMovePolygonFeedback polygonFeedback;
bool feedbackStarted;
public override void OnMouseDown(int Button, int Shift, int X, int Y)
{
feedbackStarted = false;
//A BUNCH OF STUFF HERE TO SELECT A FEATURE ON MOUSEDOWN
geometry = feature.Shape;
polygonFeedback = new MovePolygonFeedbackClass();
polygonFeedback.Display = doc.ActiveView.ScreenDisplay;
polygonFeedback.Start(geometry as IPolygon, doc.CurrentLocation);
feedbackStarted = true;
}
public override void OnMouseMove(int Button, int Shift, int X, int Y)
{
IPoint point = doc.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y);
if (polygonFeedback != null && feedbackStarted)
polygonFeedback.MoveTo(point);
}
Lo que a veces sucede cuando la mousedown y mousemove suceder rápidamente, es que la pantalla de información se entrecorta por un segundo, dejando una (lo supongo) gráfico, luego continúa con un nuevo gráfico en movimiento con el ratón hasta mouseup. Se ve un poco como esto:
En mouseup puedo cambiar la función de dar forma a la nueva posición y el almacén de la entidad. Me unión el original de la función de extensión con la nueva característica de medida y pasar sobre un parcial de actualización. El problema es que a veces las partes de la "tartamudeo" no están en el sobre, así que conseguir dangly bits:
Estoy tratando de evitar la recta actualiza pero estos dangly bits no son bonitas y no desaparecen hasta que se produce una actualización (forzado por el usuario o mover/pan, etc.)
Preguntas:
- ¿Alguien sabe por qué el "tartamudeo" que está sucediendo y cómo se puede prevenir?
- Hay una manera parcial de la actualización de la dangly bits?
- ¿Qué es la retroalimentación? Es un gráfico? Puedo trampa durante el onmove para agregarlo a la parcial de actualización sobre?
- Hay un infintely mejor manera de hacer esto que estoy perdieron?
Ayuda!