所以我基本上有一個堆棧面板,並且我使用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