private HitTestResultBehavior HTResult(HitTestResult rawresult) { RayHitTestResult rayResult = rawresult as RayHitTestResult; if (rayResult != null) { DiffuseMaterial darkSide = new DiffuseMaterial(new SolidColorBrush(Colors.Purple)); bool gasit = false; foreach (var obj in instantiatedObject) { if (obj.Model != rayResult.ModelHit) { continue; } if (obj.IsSelected) { continue; } gasit = true; tooltip.Content = ToolTipHelper.Serialize(new List <PowerEntity>() { obj.Entity }); tooltip.IsOpen = true; hitGeometry = (GeometryModel3D)rayResult.ModelHit; ScheduleColorReset(obj); hitGeometry.Material = darkSide; } foreach (var obj in lines.Values) { if (obj.Model != rayResult.ModelHit) { continue; } if (obj.IsSelected || obj.FirstEnd.IsSelected || obj.SecondEnd.IsSelected) { continue; } gasit = true; tooltip.IsOpen = true; tooltip.Content = $"Type: Line Entity\nId: {obj.Entity.Id}\nName: {obj.Entity.Name}\nIsUnderground: {obj.Entity.IsUnderground}"; hitGeometry = (GeometryModel3D)rayResult.ModelHit; ScheduleColorReset(obj); ScheduleColorReset(obj.FirstEnd); ScheduleColorReset(obj.SecondEnd); hitGeometry.Material = darkSide; obj.FirstEnd.Model.Material = darkSide; obj.SecondEnd.Model.Material = darkSide; } if (!gasit) { hitGeometry = null; } } return(HitTestResultBehavior.Stop); }
void OnHoverOverNode(object sender, RoutedEventArgs e) { Shape.ToolTip = ToolTipHelper.Serialize(Entities); }