2010-12-02 5 views
1

Ich muss den Wert der Breite oder Höhe eines 2D-Geometrieobjekts rendern, und die Anforderung besteht darin, dass es nicht nur Text ist, sondern etwas wie eine Dimension, die eine Menge von Bauplänen wäre. So etwas wie dieses Bild ... oops zu neu schreiben Bilder ... wie dieses Bild, das ich gegoogelt -WPF-Steuerelement, das eine 2D-Dimension rendert?

http://www.archidigm.com/lounge/archdim/centerline_dim_1.gif

Ich habe so etwas wie dies sah, haben aber nicht das Glück, auf meiner Suche. Mir geht es gut, es zu schaffen, aber ich dachte, dass ich versuchen würde, das Rad nicht neu zu erfinden, wenn es möglich ist. Kennt jemand eine Kontrolle oder eine Bibliothek da draußen, die so etwas macht?

+0

Hier ist ein weiteres gutes Beispiel für die Dimensionsobjekte, die ich replizieren möchte. In diesem Bild ist alles rot - http://www.we-r-here.com/cad/tutorials/level_4/images/dim_sample_1.gif –

Antwort

1

Dieser Artikel sieht wirklich hilfreich aus: http://msdn.microsoft.com/en-us/library/bb613591.aspx. Obwohl es um die Optimierung des Zeichnens geht, werden viele Klassen erwähnt, die Sie verwenden können.

Insbesondere werfen Sie einen Blick auf die Zeichnung Klasse: http://msdn.microsoft.com/en-us/library/system.windows.media.drawing.aspx#snippetGroup1

Wenn Sie die Formen möchten interaktiv zu sein (weil es scheint, wie Sie eine CAD-ähnliche Anwendung erstellen), könnte der DrawingGroup helfen. Sehen Sie sich dieses Beispiel an: http://msdn.microsoft.com/en-us/library/system.windows.media.drawinggroup.aspx#snippetGroup

Auch DrawingGroup könnte eine gute Möglichkeit sein, die tatsächliche Form (z. B. eine Wand in einem Gebäude) und das Linealobjekt, das die Abmessungen zeigt, zu gruppieren.

+0

Danke für die Links. Die Zeichenobjekte sind nicht das Problem, sondern zeigen die Dimensionen um die Objekte. Lineal ist eine Option ... funktioniert aber nicht gut ... der Benutzer möchte es wie den von mir bereitgestellten Bildlink sehen. Ich denke, meine Suche geht weiter. Trotzdem danke! –

+0

Ich sehe was du meinst. Ich denke, dass Sie Ihre eigene Klasse erstellen müssen, die das tun kann; sollte nicht zu schwer sein, würde ich denken. –

+1

danke für die ermutigenden Worte. Es klingt wie eine ziemlich gute Gelegenheit für ein Open-Source-Projekt ... –