2009-09-09 11 views

Odpowiedz

29

Prawdopodobnie nie uznano, że jest wystarczająco użyteczny, aby zasługiwać na włączenie.

Można łatwo dodać ją jako metodę rozszerzenia, jeśli chcesz choć (a jeśli używasz C# 3):

public static Point Center(this Rectangle rect) 
{ 
    return new Point(rect.Left + rect.Width/2, 
        rect.Top + rect.Height/2); 
} 

Zauważ, że jako wartości wyrażone są jako liczby całkowite, można łatwo skończyć uzyskanie niecałkowitej wartości, zakładając, że chcesz zwrócić wartość Point, a nie inną strukturę przy użyciu decimal lub double.

Powyższe jest w rzeczywistości dlastruct . Jeśli mówisz o innym prostokącie, dodaj odpowiednie informacje, a ja poprawię odpowiedź.

+0

Jak dodać to rozszerzenie do System.Drawing.Rectangle? – CallMeLaNN

+1

@CallMeLaNN: Po prostu zadeklaruj go w statycznej, nie generycznej klasie najwyższego poziomu. Aby uzyskać więcej informacji, przeczytaj ogólnie o metodach rozszerzania, np. w MSDN. –

+0

http://connect.microsoft.com/VisualStudio/feedback/details/93879/system-drawing-rectangle-needs-centerpoint-property to miejsce, w którym zostało zasugerowane formalnie. – Stobor

5

Istnieje w ramach (już nieobsługiwanego) Microsoft.XNA.Framework.

Rectangle.Center Property

myRectangle.Center zwraca Point

+0

w jakiej wersji? .net 5? – Benny

+0

4.5.51641 ma to. Nie wiem, kiedy został dodany. – Evorlor

+0

Do jakiego dokładnie typu się odnosisz? Przydatny byłby link. –

Powiązane problemy