Laden...

WPF - Programmtitel oben links und Logo unten rechts anheften

Erstellt von Micha vor 8 Jahren Letzter Beitrag vor 8 Jahren 2.901 Views
M
Micha Themenstarter:in
62 Beiträge seit 2005
vor 8 Jahren
WPF - Programmtitel oben links und Logo unten rechts anheften

Hallo,

ich komme aus der Winform-Welt und beginne gerade meine ersten Projekte mit WPF. Da WPF vektororientiert ist und sich damit tolle GUIs erstellen lassen,
suche ich nach einer Möglichkeit, den jeweiligen Programmnamen oberhalb des Mainwindow anzudocken bzw. mit einfließen zu lassen und unten rechts unten mein Logo. Als Beispiel habe ich ein Bild angehängt, was ich auf die schnelle mit Corel erstellt habe. Natürlich sollen im Endergebnis die Striche des Mainwindows nicht mehr durch das Logo bzw. den Programm Namen gehen.

Leider kann Corel natürlich kein XAML exportieren und Blend der Community Version keinerlei der Exportformate von Corel importieren (alles Vektorformate)

Hat einer von Euch so etwas schon einmal realisiert bzw. eine Idee wo ich ansetzen könnte? Kurz gesagt könnte man auch sagen, dass ich das langweilige viereckige Mainwindow anpassen möchte.

Und bevor ich wieder Schelte bekomme: ich habe zig Bücher, Codeproject und Stackoverflow durchsucht und bin nicht fündig geworden.

Für alle die jetzt Brainstormen schon mal ein großes Dankeschön.

Hinweis von Coffeebean vor 8 Jahren

Ich hab den Titel mal verändert. Wenn du eine bessere Idee hast, editier ihn bitte nochmal. Aber wenn ein Hilfesuchender "Frage an absolute XAML/WPF Cracks" in der Suche liest, hat er null Ahnung, was sich dahinter verbirgt und ob es ihm was bringt. Das beschreibt dein Problem nichtmal ansatzweise. Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 3

4.931 Beiträge seit 2008
vor 8 Jahren

Hallo,

auch ein WPF-Window beruht auf der WinAPI (d.h. es basiert auf einem Window-Handle), so daß auch dafür die normalen WinAPI-Messages gelten, s. z.B. [Artikel] Custom Window Border für Form's oder FormCutter

Ansonsten liefert die Forumssuche nach Runde Form noch weitere Treffer hier im Forum.

M
Micha Themenstarter:in
62 Beiträge seit 2005
vor 8 Jahren

Danke für Deine Hinweise. Ich denke aber, dass es letztendlich auch einfacher gehen müsste, wenn man das Hauptfenster möglichst in Blend schon modifizieren könnte. Dann wäre alles vektororientiert und in XAML. Kann sein, dass der kostenlose Blend das einfach nicht beherrscht.
Formcutter ist schon cool aber ich wollte nicht das Main Window an sich verformen sondern erweitern.
Die Lösung über XAL hätte den Vorteil, dass die WPF sich um alles kümmert,

16.806 Beiträge seit 2008
vor 8 Jahren

Wie Th69 es schon gesagt hat gelten auch für XAML die Standardregeln von Windows. Hat mit der Funktionalität eines Editors recht wenig zutun.
Wenn Dir das nicht ausreicht, dann musst Du eben über Custom Forms gehen.

Blend war übrigens mal keine kostenlose Anwendung sondern hat richtig viel Asche (~800€) gekostet. Erst Expression Blend ist kostenlos geworden.

C
258 Beiträge seit 2011
vor 8 Jahren

Wenn du ein custom Window haben willst würde ich erstmal http://mahapps.com/ versuchen um das gewünschte (oder alternativ einfach ein modernes) custom Window zu bekommen. Wenn man damit nicht zurecht kommt kann man bei Github den Sourcecode durchstöbern und das ganze selbst implementieren (so habe ich es auch gemacht).

P.S. Mit dem NonClient Area zeugst wird hier übrigens nichts gemacht. Würde ich auch nicht empfehlen.

M
Micha Themenstarter:in
62 Beiträge seit 2005
vor 8 Jahren

@Abt: Ich weiß, dass Blend einmal richtig teuer war. Aber ich habe das Gefühl, dass das Blend welches mit der Viusal Studio 2015 Express Community stark abgespeckt wurde.

@Alle anderen:
Zunächst einmal danke für Eure Beiträge.
Es stimmt vorerst noch, dass auch WPF nur noch wenige Wrapper für die WinAPI zur Verfügung stellt, aber spätestens ab Net 4.5 sind diese kaum noch vorhanden und werden in den nächsten Net Versionen verschwinden.
Unter WPF gibt es jetzt schon kein Windowshandle mehr. WPF nutz GDI+ nur noch sporadisch und baut auf DirextX auf. Wenn man also eine zukunftssichere WPF Applikation erstellen will welche nicht in 1-2 Jahren überarbeitet werden muss sollte man jetzt schon auf reines XAML setzen.++

Lösung:++
Manchmal sieht man den Wald vor lauter Bäumen nicht und vergisst einfach mal zu googeln.
Ich habe nach XAML Converter gegoogelt und zwei brauchbare Ansätze gefunden:

  1. Es gibt von Amit Kumar einen "VectortoXAML" Converter. Dieser wandelt SVG Dateien in XAML um.
    Allerdings hat er es aus Zeitgründen noch nicht geschafft die Farben mit zu konvertieren. Es gibt nur die Möglichkeit eine Exportfarbe für das komplette SVG auszuwählen (schwarz, rot , grün und blau), aber schon mal besser als gar nichts. Leider habe ich den Link nicht mehr aber mit den oben genannten Infos sollte es kein Problem sein den Link zu finden.

  2. Es gibt tatsächlich einen "Oldschool-Trick" Vectorgrafiken in XAML zu verwandeln ohne Farbverlust:

Link: http://oldschooldotnet.blogspot.de/2009/08/easiest-way-to-convertvector-graphics.html

The easiest way to convert vector graphics to XAML
Wow, this is sooooo simple. I've been converting WMF, EMF, CDX, CDR, AI, EPS, PDF and SVG to XAML all day. This is actually fun!
First get a vector graphic and a program that can open it. I've used Adobe Illustrator, CorelDraw, Inkscape and even Windows Picture and Fax Viewer.
Next get a vector graphic that your program can open.
Finally get the Microsoft XPS printer driver if it is not already installed.
Now open the file in your program of choice and print it to the XPS printer driver.
Now rename the resultant XPS file to ZIP.
Open the ZIP file and inside the Documents/1/Pages folder is a file named 1.fpage.
Extract the file and rename it to .XAML.
Now you have a XAML file that will open in Internet Explorer, but if you want to have a XAML file that will open kaxaml or for use in a WPF or a Silverlight application, open the file in notepad and replace the FixedPage tag with the Canvas tag.

Auch hier gibt es kleinere Probleme die im Link angesprochen und unter Comments teilweise gelöst werden.

In wie weit sich damit das Main Window anpassen lässt konnte ich aus Zeitgründen noch nicht testen aber ich wollte mich mit diesen Infos bei Euch bedanken und Euch zumindest Wege vorstellen Vektorobjekte in XAML zu überführen.

709 Beiträge seit 2008
vor 8 Jahren

Hallo,
wenn du SVG- zu XAML-Dateien konvertieren willst, bietet sich auch noch Inkscape an.
Dort kannst du im Speichern-Unter-Dialog als Zieldateityp xaml auswählen.

Das ausgegebene XAML würde ich allerdings ggf. noch mal manuell überarbeiten, da dort ab und an manch seltsame Transformation zusätzlich gemacht wird.

M
Micha Themenstarter:in
62 Beiträge seit 2005
vor 8 Jahren

Danke für den Tip! Wundert mich, dass nicht schon mehrere Leute nach solch einer Lösung gesucht haben.