所以我基本上有一个堆栈面板,并且我使用foreach循环遍历子元素,并且所有子元素都是'路径'格式,但有些是行和一些是省略号(或至少是在转换之前到路径)正在将路径转换为可能的形状?
我的问题是,我怎么知道哪些是行,哪些是椭圆? ,我使用的是isMouseOver事件来检查,如果鼠标在椭圆使他们相应的改变上的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;
}
}
}
}
我假定一个'椭圆'没有任何直线,'线'没有曲线,所以你可以检查'Path.Data'来查看'Path'。如果您滚动到[MSDN的PathSegments页面底部](http://msdn.microsoft.com/en-us/library/system.windows.media.pathsegment.aspx),您可以看到不同的可用段类型。 – Rachel