Wie kann ich einem WPF-Element einen rechteckigen, flachen 3D-Rahmen geben?

7

Ich möchte ein rechteckiges "flaches 3D" -Look für eine meiner Kontrollschablonen erstellen. In seiner einfachsten Version bedeutet dies, dass eine untere Linie dunkler ist als die obere, und vielleicht auch etwas zwischen der linken und der rechten Linie.

Eine komplexere Version würde es mir ermöglichen, einen oder mehrere Pinsel bereitzustellen, damit Farbverläufe angewendet werden können.

Mit dem Standardelement <Border> in WPF können Sie eine andere Stärke pro Kante angeben, aber ich kann keine Methode zur Angabe mehrerer Pinsel finden.

Also, wie kann ich den gewünschten Effekt so einfach wie möglich erzeugen?

BEARBEITEN Es wurde vorgeschlagen, dass ich ein Beispiel für die Verwendung dieses Elements posten möchte. Persönlich wäre ich glücklich, einen Stil oder eine Benutzerkontrolle zu haben. Das Benutzersteuerelement könnte so verwendet werden:

%Vor%

Oder vielleicht noch einfacher:

%Vor%

Das sind nur Ideen. Jede vernünftige, prägnante Lösung ist willkommen.

    
Drew Noakes 24.02.2009, 14:00
quelle

4 Antworten

11

Hier ist eine Lösung, die ich entwickelt habe, die das meiste von dem erreicht, was ich will. Es bietet keine vollständige Kontrolle über alle vier Seiten unabhängig, aber es gibt die rechteckige flache 3D-Ansicht, die ich will.

So sieht es aus:

Ссылка

Fügen Sie dies in Kaxaml ein, um es selbst zu sehen:

%Vor%

Hoffe, dass jemand anders hilft. Ich bin immer noch auf der Suche nach innovativen Lösungen für dieses Problem, also poste weiter und ich akzeptiere eine bessere Antwort als diese.

    
Drew Noakes 24.02.2009, 16:23
quelle
13

Ich habe so etwas gemacht, indem ich mehrere Ränder direkt übereinander gelegt habe. Zum Beispiel:

%Vor%

Dies bietet den zusätzlichen Vorteil aller anderen Features, die border bietet - Eckenradius und so.

    
Greg D 17.03.2011 18:05
quelle
3

Ehrlich gesagt wäre der einfachste Weg, Schichttechniken zu verwenden. Zum Beispiel erstellen Sie ein Raster wie folgt:

%Vor%

Ich denke, Sie haben die Idee. Dies ist wahrscheinlich der einfachste Weg, dies zu tun. Sie könnten dies als Vorlage einrichten und so verwenden:

%Vor%     
Micah 24.02.2009 14:10
quelle
1

Sie können auf die PresentationFramework.Classic -Assembly verweisen und dann

verwenden %Vor%

Ich habe diese Technik zum Betrachten von Kontrollvorlagen , um zu sehen, wie Standard-Schaltflächen gestaltet wurden

    
Glen 22.09.2012 21:39
quelle

Tags und Links