2013-06-20 56 views
0

我有一個功能在我的課Drawing調用drawPoly(...),這個函數繪製點並連接它們。我想要的是,我怎樣才能將它們隱藏在畫布上?我有我的班級繪圖的8個實例。如果可能,我不想刪除整個Canvas,只是隱藏繪製的點。WPF:隱藏繪製點

private double t = 0;  // x Startpostion für Graph 
private double xOld = 0; // x Startpostion für Graph 
private double yOld = 100; 

System.Windows.Shapes.Path path;  

public GeometryGroup pointGroupDrawing = new GeometryGroup(); 

... 

public void drawPoly(double value, Brush colorBrush, int thickness) 
{ 
    // is for the x-Axis /time 
    t++; 

    // get old value and generate new point 
    Point pOne = new Point(xOld, yOld); 
    Point pTwo = new Point(t, value); 

    // connect old point wit new point 
    GeometryGroup lineGroup = new GeometryGroup(); 

    LineGeometry connectorGeometry = new LineGeometry(); 
    connectorGeometry.StartPoint = pOne; 
    connectorGeometry.EndPoint = pTwo; 
    lineGroup.Children.Add(connectorGeometry); 
    path = new System.Windows.Shapes.Path(); 
    path.Data = lineGroup; 
    path.StrokeThickness = thickness; 
    path.Stroke = path.Fill = colorBrush; 

    // collect point for redrawing later ? 
    pointGroupDrawing.Children.Add(connectorGeometry); 

    // replace old point with new 
    xOld = t; 
    yOld = value; 

    coordinateSystem.Children.Add(path);   
} 

我可以用這個pointGroupDrawing.Children.Add(connectorGeometry);隱藏舊的點嗎?

+0

爲什麼要隱藏點? – ThaMe90

回答

1

System.Windows.Shapes.Path有一個Visibility屬性。將其設置爲Hidden

path.Visibility = Visibility.Hidden; 
+0

我也可以隱藏舊點嗎? public GeometryGroup pointGroupDrawing = new GeometryGroup(); pointGroupDrawing.Children.Add(connectorGeometry); – user2261524

+0

不確定你的意思。你是否可能不斷地爲多段線添加點,並想刪除舊點並只保留最後一個點? – Clemens

+0

是的,那就是我的意思,我收集pointGroupDrawing中的所有舊點,但是如何將這些點隱藏在畫布上? – user2261524

0

我不明白你的問題。點本身不應該是可見的。只有路徑具有可見性屬性。

您可以設置路徑的visibility屬性以將其隱藏在畫布中。如果您希望在畫布中使用所有路徑執行此操作,則可以遍歷它的子項並將其可見性設置爲visibility.hidden

+0

我收集了pointGroupDrawing中的所有舊點,但是如何將這些點隱藏在畫布上? – user2261524

+0

我認爲你應該用'Polyline'代替'Path' – Tobias