J'ai donc un panneau Stack, et j'utilise une boucle foreach pour parcourir les enfants, et tous les enfants sont des formats 'path', mais certains sont des lignes et certains sont des ellipses (ou étaient au moins, avant convertis au chemin)La conversion d'un chemin vers une forme est-elle possible?
Ma question est, comment puis-je dire lesquels sont des lignes, et lesquels sont des ellipses? , J'utilise l'événement isMouseOver pour vérifier si la souris est sur Ellipses pour les faire changer en conséquence sur MouseDown
private void GraphPanel_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
foreach (var x in GraphPanel.Children)
{
if (((Path)x).IsMouseOver)
{
var converter = new System.Windows.Media.BrushConverter();
var brush = (Brush)converter.ConvertFromString("#FFB1D100");
((Path)x).Stroke = brush;
((Path)x).StrokeThickness = 8;
}
else
{
((Path)x).Stroke = Brushes.Black;
((Path)x).StrokeThickness = 4;
}
}
}
}
Je suppose qu'un 'Ellipses' n'a pas de lignes droites, alors que' Lines' n'ont pas des lignes courbes, de sorte que vous pouvez vérifier le 'Path.Data' pour voir quel genre de lignes existent dans la "Chemin". Si vous faites défiler vers le bas de [la page de MSDN sur PathSegments] (http://msdn.microsoft.com/en-us/library/system.windows.media.pathsegment.aspx) vous pouvez voir les différents types de segments disponibles. – Rachel