Laden...
Avatar #avatar-1590.jpg
Fabian myCSharp.de - Member
Student & Fachinformatiker - Anwendungsentwicklung Dortmund Dabei seit 09.12.2004 1.985 Beiträge
Benutzerbeschreibung

Forenbeiträge von Fabian Ingesamt 1.985 Beiträge

26.03.2008 - 16:02 Uhr

Hallo herbivore,

wirklich schönes Zitat. Das merke ich mir doch gleich mal.

Gruß,
Fabian

25.03.2008 - 13:14 Uhr

Hallo MPeacemaker,

soweit ich weiß, ist das gar nicht möglich. In einem MDI-Container sind entweder alle MDI-Childs maximiert oder alle minimiert. Es ist nicht möglich, dass ein Fenster minimiert und das andere maximiert ist.

Edit: Was genau meinst Du mit minimieren? An den unteren Rand des MDI-Containers verschieben? Da bin ich mir nicht sicher. Mit minimieren meine ich jetzt, die Größe vor dem Maximieren wiederherstellen.

Gruß,
Fabian

25.03.2008 - 12:31 Uhr

Hallo onlinegurke,

danke für die Info. Da gucke ich doch gleich mal vorbei.

Gruß,
Fabian

19.03.2008 - 09:05 Uhr

Hallo zusammen,

für mich im Moment ganz klar WPF, WCF, dass .NET Framework 3.5 und am Rande auch WF. Anschließend noch Design Patterns und das Entity Framework. Damit hat man schon ordentlich zu tun 🙂.

Da sich hier viele mit aspektorientierter Programmierung befassen wollen, gucke ich mir das evtl. auch mal an neugierig bin.

Gruß,
Fabian

18.03.2008 - 10:12 Uhr

Hallo zusammen,

Brad Abrams hat auf seinem Blog einen Artikel veröffentlicht, in dem eine kleine Statistik zum .NET-Framework zu finden ist. Aufgeführt werden die Veränderungen bei der Anzahl der Assemblies, Namespaces, Types und Members im Verlauf von .NET 1.1 zu 3.5.

Das nur als kleiner Hinweis, da diese Frage schon öfter im Forum gestellt wurde.

Gruß,
Fabian

17.03.2008 - 10:15 Uhr

Hallo zusammen,

privat habe ich (glücklicherweise) zu 90% mit C# zu tun. Der Rest wird durch PHP, Java und Javascript aufgefüllt.

Beruflich muss ich mich leider immer noch mit VO rumärgern. Zum Glück wird hier der C# Anteil aber immer größer.

Gruß,
Fabian

12.03.2008 - 10:15 Uhr

Hallo dr4g0n76,

ich habe mich auf jeden Fall gewundert, wo Du denn steckst 🙂.

Ich hoffe, Dir ist nichts schlimmes bei dem Unfall passiert. Und natürlich auch viel Erfolg (oder Glück?) für das große Projekt.

Gruß,
Fabian

11.03.2008 - 09:29 Uhr

Hallo DavidT,

was meinst Du genau? Wenn ich eine XML-Datei geöffnet habe und unter dem Menüpunkt XML den Unterpunkt "Create Shema" auswähle, erhalte ich ein Shema mit Designerunterstützung. Meinst Du das oder etwas anderes?

Gruß,
Fabian

09.03.2008 - 21:54 Uhr

Hallo Blacal,

ach so, entschuldige bitte. Ich hatte überlesen, dass es grundsätzlich funktioniert. Wenn Du kompilieren und die Anwendung ausführen kannst, ist alles in Ordnung. In VS 2005 spinnen die Extension teilweise und der Designer ist nicht wirklich der Beste.

Wie feadur schon sagte, funktioniert es mittlerweile in VS 2008 ziemlich gut. Ich hatte schon lange keinen "falschen Fehler" mehr.

Gruß,
Fabian

09.03.2008 - 16:29 Uhr

Hallo Merlin_S,

das sieht ziemlich gut aus! Gefällt mir.

Bzgl. dem Verändern der Größe des Forms: Ich denke Du meinst die Anchor-Eigenschaft. Damit lässt sich festlegen, wo sich ein Steuerelement beim Resizen festhält. Einfach mal mit rumspielen oder hier im Forum suchen.

Gruß,
Fabian

09.03.2008 - 16:22 Uhr

Hallo Blacal,

den Projektverweis hast Du eingetragen? Das muss natürlich auch noch gemacht werden. Ansonsten ist das schon ok so. Den Zusatz "assembly=MyWPFApp.Data" muss man weg lassen, wenn sich alles im gleichen Projekt befindet.

Gruß,
Fabian

09.03.2008 - 11:39 Uhr

Hallo serial,

sind + und - bei Dir Buttons? Wenn ja, kannst Du dafür doch einen RepeatButton nehmen oder nicht? Der wirft das Ereignis dauerhaft, wenn der Button gedrückt bleibt. Sollte genau das sein, was Du erreichen möchtest oder?

Gruß,
Fabian

07.03.2008 - 12:13 Uhr

Hallo zusammen,

ich habe von seinem Tod auf der WoW Website gelesen: http://www.wow-europe.com/de/index.xml

*ohne Worte*.

Gruß,
Fabian

06.03.2008 - 16:38 Uhr

Hallo zusammen,

in den letzten projekten kam es nicht auf klicki-bunti an, sondern auf funktionen.

diesen Satz höre bzw. lese ich immer wieder und jedes mal muss ich aufs Neue mit dem Kopf schütteln.

Was genau hat WPF mit "klicki bunti" zu tun? Ist man gezwungen seine Anwendung bunt zu gestalten und mit Animationen zu überfrachten? Ich bin das nicht und ich behaupte einfach mal, dass niemand dazu gezwungen wird.

WPF ist für mich eine mögliche Weiterentwicklung von Windows Forms 2.0. Man erhält dadurch neue Möglichkeiten der Entwicklung einer Oberfläche: Eine gute Trennung zwischen GUI und Code, Commands und ein erheblich verbessertes DataBinding, dass nicht mehr nur stupide den Wert einer Datenquelle an bestimmte Properties übergeben kann, um nur die mir geläufigsten Vorteile zu nennen.

Natürlich hat Windows Forms 2.0 immer noch seine Berechtigung und wird wohl noch etliche Jahre in Firmen Verwendung finden. Es gibt noch genug Einsatzfelder für WinForms 2.0.

WPF mit der Begründung abzuwatschen, dass "klicki bunti" nicht gewünscht ist, zeugt meiner Meinung nur von der Tatsache, dass man mit der Technologie noch nicht viel zu tun hatte.

Auf www.windowsclient.net ist vor einiger Zeit eine recht gute Gegenüberstellung der beiden Technologien veröffentlich worden, die hier zu finden ist.

Um wieder OT zu werden: Ich persönlich werde privat auf WPF mit dem .NET Framework 3.5 umsteigen. Beruflich sieht das anders aus. Das .NET Framework 3.5 wird zwar auch "zeitnah" eingesetzt, WPF allerdings nicht. Das liegt zu 95% daran, dass es sich nicht lohnt, die bestehenden Anwendungen zu portieren. Für komplette Neuentwicklungen ist das glaube ich noch nicht entschieden.

Gruß,
Fabian

06.03.2008 - 15:15 Uhr

Hallo delphirocks,

was für eine VS Version benutzt Du denn? Ich habe keinerlei Trägheit festgestellt und arbeite mit unterschiedlichen Versionen auf ganz unterschiedlichen Rechnern.

Hast Du evtl. viele AddIns installiert, die Performance kosten?

Gruß,
Fabian

06.03.2008 - 13:44 Uhr

Hallo zusammen,

ich möchte den IE jetzt nicht einfach schlecht reden, weil es der IE ist bzw. er von Microsoft kommt, aber ich habe schon etwas mit dem Kopf geschüttelt, als ich mir die Features durchgelesen und Dinge wie "Favouriten Bar" entdeckt habe... Da frage ich mich schon, was das soll. Das Feature ist seit Jahren Standard und wird jetzt im IE als super neu angepriesen.

Finde ich schon komisch. Gibt es andere Gründe, dass die Versionsnummer direkt auf 8 erhöht wurde?

Gruß,
Fabian

06.03.2008 - 09:42 Uhr

Hallo zusammen,

eine ganz normale Form zu nehmen geht natürlich. Auch designtechnisch ist das nicht das große Problem. Nervig wird es erst, wenn die Form aufpoppt und der aktuellen Anwendung den Fokus klaut! Genau das wird eine normale Form nämlich tun, was auf die Dauer richtig schön nerven kann.

Zu dem Problem wurde hier im Forum aber schon mal diskutiert. Sollte über die Forensuche auffindbar sein.

Gruß,
Fabian

05.03.2008 - 21:47 Uhr

Hallo t-master,

was genau meinst Du mit "StatusBox"? Ich kenne Kaspersky nicht, deshalb muss ich mal nachfragen 🙂. Ansonsten ist www.codeproject.com immer eine gute Adresse für Controls.

Gruß,
Fabian

05.03.2008 - 15:01 Uhr

Hallo Kuehner,

wie ist denn die Eigenschaft "StartLocation" des Dialogs eingestellt? Die muss auf "Manual" stehen, da ansonsten die "WindowsDefaultLocation" greift.

Edit: Der Hinweis von juetho muss natürlich auch noch beachtet werden.

Gruß,
Fabian

05.03.2008 - 09:36 Uhr

Hallo olaf87,

es gibt beim DataGridView ein Event, dass "ToolTipTextNeed" (oder so ähnlich) lautet. Das wird gefeuert, wenn der Mauszeiger über einer Zelle steht und der ToolTipText ermittelt werden soll. Über die EventArgs bekommst Du mit, welche Zelle in welcher Row gerade angezeigt werden soll und Du kannst die Daten Deiner Wahl ermittelt und zurückgeben.

Beispiele sollten sich genug über die Forensuche finden lassen.

Gruß,
Fabian

04.03.2008 - 11:26 Uhr

Hallo beegee,

ich habe das gerade getestet und bei mir scheint es zu funktionieren. Bist Du sicher, dass sich die externe Ressource an der richtigen Stellen befindet? Ich habe bei meinem Test einfach mal einen absoluten Pfad verwendet und die Datei wurde anschließend gefunden.

Gruß,
Fabian

04.03.2008 - 11:23 Uhr

Hallo Jürgen Gutsch,

das Du schon ein TreeViewItem erstellt hast, sehe ich jetzt erst 🙂. Ich könnte mir aber gut vorstellen, dass dafür das Template nicht greift. Du kannst auch versuchen, das Template für dieses TreeViewItem manuell zu setzen. Das sollte dann auch klappen.

Gruß,
Fabian

04.03.2008 - 11:07 Uhr

Hallo filewalker,

herzlich Willkommen im Forum!

Bei externen Frameworks, wie das von Dir verwendete C4F Vista P2P Kit, ist es immer schwierig zu helfen, weil wir das Framework oftmals nicht kennen (das noch keine Antwort geschrieben wurde lässt mich vermuten, dass es auch wirklich niemand kennt).

Da musst Du wahrscheinlich die Dokumentation oder andere Ressourcen verwenden 😦.

Wo hapert es denn genau? Weißt Du nicht, wie man an die Liste der verbundenen Benutzer kommt oder hast Du Probleme beim Anzeigen dieser Liste?

Gruß,
Fabian

04.03.2008 - 11:03 Uhr

Hallo Neili,

herzlich Willkommen im Forum.

Wenn keine Fehlermeldung erzeugt wird, würde ich erstmal davon ausgehen, dass die Datei evtl. doch erzeugt wird, aber nicht an der Stelle, die Du erwartest. Hast Du mal als Parameter von Uri "Relative" angegeben?

Gruß,
Fabian

04.03.2008 - 10:59 Uhr

Hallo Jürgen Gutsch,

ich kenne mich damit zwar auch noch nicht so wirklich aus, lese aber aus Deinem Code, dass Du für das HierarchicalDataTemplate als DataType den Typ "Folder" nimmst. Kann es evtl. sein, dass der RootNode einen anderen Typ hat? Ist ja öfters so, dass der RootNode beispielsweise statisch hinzugefügt wird.

Alles nur geraten.

Gruß,
Fabian

03.03.2008 - 13:48 Uhr

Hallo zusammen,

da ich auch immer mehr auf meinem Notebook mache, habe ich es vor ein paar Tagen aufgerüstet. Ich hatte eine HDD mit 4200 Umdrehungen und 2 MB Cache eingebaut graus. Da merkte man jeden einzelnen Zugriff...

Jetzt habe ich eine 7200er mit 8 MB Cache eingebaut und durch ein zusätzliches Speicher-Upgrade 2 GB RAM. Ist ein deutlicher Unterschied, ganz besonders beim Festplattenzugriff (Starten von VS, MSDN, Kompilierungsvorgänge etc. pp.). Kann ich jedem empfehlen.

Gruß,
Fabian

02.03.2008 - 21:22 Uhr

Hallo agerni03,

herzlich Willkommen im Forum.

Da würde ich mal bei www.codeproject.com suchen. So ein Control wurde schon öfters dort veröffentlicht. Das erspart eine Menge Arbeit beim selber Bauen.

Gruß,
Fabian

02.03.2008 - 20:46 Uhr

Hallo beegee,

guck mal in den Thread hier: [gelöst] XAML wird zu unübersichtlich; Auslagern in andere XAML Dateien

Ist das evtl. etwas für Dich?

Gruß,
Fabian

01.03.2008 - 16:27 Uhr

Hallo powertrack,

da wird Dir wahrscheinlich die Referenz auf die Interop-Assembly fehlen. Das ist aber alles nur geraten, da Du uns die Fehlermeldung vorenthälst.

Gruß,
Fabian

29.02.2008 - 14:11 Uhr

Hallo thehack,

vereinfacht gesagt reserviert eine .NET Anwendung beim Start mehr Speicher, als sie eigentlich in dem Moment benötigt. Dieser Speicher wird allerdings wieder freigegeben, wenn er durch an anderes Programm wirklich benötigt wird.

Der Vorteil ist, dass wesentlich schneller Speicher zur Verfügung gestellt werden kann, wenn die .NET-Anwendung dann wirklich welchen benötigt. Das zeitaufwändige Anfordern fällt somit weg.

Die Links von hulkstar sind sehr gut und sollten das Verhalten genauer beschreiben.

Gruß,
Fabian

27.02.2008 - 09:26 Uhr

Hallo .tim,

ich kann Dir leider nicht wirklich viel dazu sagen, da ich noch keine WPF Controls in Windows Forms benutzt habe. Ich kann mir aber schon vorstellen, dass es eine Verzögerung gibt, bis das WPF Control vollständig geladen wurde.

Erzeugst Du die einzelnen Controls erst beim Anzeigen? Prinzipiell kannst Du sie ja auch alle vorher erstellen und in einer Liste abspeichern. Dann brauchst Du nur das gerade benötigte Control anzuzeigen. Evtl. umgeht dieses Vorgehen die langen Ladezeiten.

Gruß,
Fabian

26.02.2008 - 15:35 Uhr

Hallo Andreas.May,

entschuldige die späte Antwort, aber ich komme irgendwie erst jetzt dazu. Hier mal die entsprechenden Ausschnitte:

private Rectangle rowBoundsRectangle = new Rectangle();

private void verifiedUpdaterSettingsDataGridView_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) {
    if (e.RowIndex < 0 || e.ColumnIndex == -1) {
        return;
    } else if (!Convert.ToBoolean(this.verifiedUpdaterSettingsDataGridView.Rows[e.RowIndex].Cells["columnVerifiedUpdaterSettingsIsSetting"].Value)) {
        e.PaintBackground(e.ClipBounds, true);
        e.Handled = true;
    }
}

private int GetColumnWidth() {
    int width = 0;

    foreach (DataGridViewColumn currentColumn in this.verifiedUpdaterSettingsDataGridView.Columns) {
        if (currentColumn.Visible)
            width += currentColumn.Width;
    }

    return width;
}

private void verifiedUpdaterSettingsDataGridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) {
    if (!Convert.ToBoolean(this.verifiedUpdaterSettingsDataGridView.Rows[e.RowIndex].Cells["columnVerifiedUpdaterSettingsIsSetting"].Value)) {
        if (!String.IsNullOrEmpty(this.verifiedUpdaterSettingsDataGridView.Rows[e.RowIndex].Cells["columnVerifiedUpdaterSettingsSettingName"].Value.ToString())) {
            this.rowBoundsRectangle.X = e.RowBounds.Left;
            this.rowBoundsRectangle.Y = e.RowBounds.Top;
            this.rowBoundsRectangle.Width = this.GetColumnWidth();
            this.rowBoundsRectangle.Height = e.RowBounds.Height - 2;

            e.Graphics.DrawRectangle(Pens.White, this.rowBoundsRectangle);
            e.Graphics.FillRectangle(Brushes.White, this.rowBoundsRectangle);

            e.Graphics.DrawString(this.verifiedUpdaterSettingsDataGridView.Rows[e.RowIndex].Cells["columnVerifiedUpdaterSettingsSettingName"].Value.ToString(),
                new Font("Arial", 10, FontStyle.Bold), Brushes.Black,
                this.rowBoundsRectangle.X + 5 - this.verifiedUpdaterSettingsDataGridView.HorizontalScrollingOffset,
                this.rowBoundsRectangle.Y - 6, StringFormat.GenericDefault);

            e.Graphics.DrawImage(global::IKAROSsqlUpdater.GUI.Properties.Resources.CategoryLine,
                this.rowBoundsRectangle.X + 5, this.rowBoundsRectangle.Y + 7);
        } else {
            this.rowBoundsRectangle.X = e.RowBounds.Left;
            this.rowBoundsRectangle.Y = e.RowBounds.Top;
            this.rowBoundsRectangle.Width = this.GetColumnWidth();
            this.rowBoundsRectangle.Height = e.RowBounds.Height;

            e.Graphics.DrawRectangle(Pens.White, this.rowBoundsRectangle);
            e.Graphics.FillRectangle(Brushes.White, this.rowBoundsRectangle);


        }
    }
}

private void verifiedUpdaterSettingsDataGridView_Scroll(object sender, ScrollEventArgs e) {
    this.verifiedUpdaterSettingsDataGridView.Invalidate();
}

Ist leider etwas mehr 😦. Ich hoffe, Du kannst trotzdem etwas damit anfangen.

Gruß,
Fabian

26.02.2008 - 07:37 Uhr

Hallo talla,

hast Du mit dem Teil des Frameworks schon mal etwas gemacht? Ich finde die Möglichkeiten ziemlich interessant. Allerdings würde ich gerne noch ein paar Infos von Leuten haben, die damit schon mal etwas gemacht haben. Kennst Du evtl. ein paar gute Links dazu?

Gruß,
Fabian

21.02.2008 - 16:03 Uhr

Hallo haargel,

Du kannst doch die Methode OnPaint auch von dem TabControl überschreiben und dann in der linken unteren Ecke etwas zeichnen, oder habe ich etwas falsch verstanden?

Gruß,
Fabian

20.02.2008 - 12:58 Uhr

Hallo zusammen,

ich habe gerade einen sehr netten Blog-Eintrag von Scott Guthrie gelesen, in dem er sich zur zukünftigen Entwicklung im Bereich .NET 3.5, WPF und Visual Studio 2008 äußert.

Die Hauptpunkte des Beitrags sind die folgenden Verbesserungen:

  • Improved .NET Framework Setup for Client Applications
  • Improved Working Set and Startup Improvements for .NET Client Applications
  • WPF Performance Improvements
  • WPF Control Improvements
  • VS 2008 WPF Designer Improvements

Da bin ich ja mal gespannt 🙂. Der komplette Beitrag ist hier zu finden.

Gruß,
Fabian

20.02.2008 - 10:18 Uhr

Hallo zusammen,

danke für die Antworten. An ein Bild hatte ich auch schon gedacht. Allerdings viel mir bisher keine Lösung ein, wie man trotzdem auf das Bild klicken kann um direkt eine E-Mail zu schreiben, ohne die E-Mail Adresse wieder lesbar im Quellcode zu haben.

Da ist die Lösung von dennisspohr gar nicht mal so schlecht 😉.

Gruß,
Fabian

20.02.2008 - 10:09 Uhr

Hallo zusammen,

eher ein kleines Demo-Projekt, als eine ausgewachsene Anwendung, aber vielleicht doch für einige interessant:

Da ich mich zurzeit mit WPF beschäftige, habe ich mal ein kleines Projekt in Angriff genommen, dass in der WPF-Welt anscheinend das Äquivalent für ein "Hello World" Programm ist: Eine Uhr 😉. Natürlich konnte ich mich dem nicht entziehen und so habe ich ein eigenes kleines CustomControl erstellt.

Was zeigt das Projekt?

  • Verwendung eines CustomControls
  • Erstellung eines look-less Controls
  • Austauschbare Styles in Form vom Control-Templates (insgesamt vier vorhanden)
  • Verwendung eines DataConverters und das Binding an ein XAML Control

Welche Features hat die Uhr?

  • Zeigt die Uhrzeit an (Killer-Feature!)
  • Möglichkeit, in einem Style das Datum hinzuzufügen
  • Freie Gestaltung durch Control-Templates
  • Reagiert auf Änderungen der Windows Systemzeit*

Wie man sieht, habe ich auch ein kleines unspektakuläres myCSharp-Design erstellt. Falls das Team etwas dagegen hat, entferne ich es natürlich.

Herunterladen kann man es auf meinem Blog, zu finden unter http://www.experience-dotnet.com/projects/

Anbei noch ein kleiner Screenshot, der die im Moment vorhandenen Styles zeigt.

Gruß,
Fabian

* Im Moment reagiert die Uhr bei manuellen Änderungen an der Windows-Uhr. Ich habe bis jetzt noch nicht getestet, ob das verwendete Event auch gefeuert wird, wenn programmatisch an der Uhr gedreht wird.

20.02.2008 - 09:30 Uhr

Hallo zusammen,

viele von Euch haben ja eine eigene Homepage, auf der E-Mail Adressen veröffentlicht sind. Wie macht Ihr das bzgl. dem Schutz dieser Adressen, damit sie nicht von jedem x-beliebigen Spambot erwischt werden und anschließend vor Spam aus allen Nähten platzen.

Evtl. hat jemand noch eine Idee. Die Website basiert auf PHP.

Gruß,
Fabian

20.02.2008 - 06:54 Uhr

Hallo toxick,

wenn das wirklich erforderlich ist, nutze ich beispielsweise eine GUID als ID. Die kann man ohne Probleme auf dem Client erzeugen und sich sicher sein, dass sie eindeutig ist.

Gruß,
Fabian

20.02.2008 - 06:52 Uhr

Hallo cytrics,

noch eine kleine Information: Ich weiß zwar nicht genau, was Du vor hast, aber warum verwendest Du nicht die Auflistung "SelectedRows"? Dadurch ersparst Du Dir den ganzen HitTest Kram.

Gruß,
Fabian

18.02.2008 - 12:13 Uhr

Hallo Feroc,

"gibt es etwas bei WPF" ist die falsche Frage, da Du bei WPF alle Freiheiten hast. Das gezeigte Control kannst Du Dir doch einfach selber bauen.

Je nachdem wie die einzelnen Kategorien angeordnet werden sollen, kannst Du beispielsweise ein WrapPanel nehmen, darauf Expander platzieren und in den Expandern wieder mit WrapPaneln arbeiten. Ich würde da einfach mal rumprobieren, was Du genau brauchst. Prinzipiell ist das aber kein Problem.

Gruß,
Fabian

18.02.2008 - 12:08 Uhr

Hallo cytrics,

such hier im Forum mal nach "DataBinding". Dazu solltest Du einige Themen finden. Generell brauchst Du den Umweg über die ArrayList gar nicht gehen. Eine weitere Möglichkeit ist, die Daten in ein DataSet zu laden und direkt an das DataGridView zu binden (bzw. bei .NET 2.0 über den Zwischenschritt einer BindingSource).

Zu den ganzen Keywords findest Du hier im Forum viele Beispiele.

Gruß,
Fabian

18.02.2008 - 12:05 Uhr

Hallo Kovu,

ich weiß nicht, ob ich Dich richtig verstanden habe, aber ich selektiere nach dem Binden immer manuell den Wert, den ich vorselektiert haben möchte.

Gruß,
Fabian

15.02.2008 - 08:59 Uhr

Hallo zusammen,

interessanter Thread. Ich habe mich am Anfang das gleiche gefragt, als ich angefangen bin, mich mit WPF zu beschäftigen.

Ich glaube nicht, dass man das einfach so lernen kann. Vor allem glaube ich nicht, dass man mit Photoshop auf dem richtigen Weg ist. Ein Design für eine WPF Applikation zu erstellen, hat für mich erstmal wenig mit Photoshop zu tun (außer man nimmt das als Möglichkeit, Drafts zu erstellen).

Ehrlich gesagt finde ich es gut, dass ich mich als Programmierer einer Anwendung nicht mehr so stark um das Aussehen kümmern muss, da jeder Anwender über Styles und Templates die Möglichkeit hat, die Anwendung so zu gestalten, wie er das gerne hätte und das auch inkl. möglicher Animationen. Wenn ein Unternehmen eine Anwendung gleich mit einem "besonderen" Desing erstellen/ausliefern will, kommt sie wohl in den meisten Fällen nicht umher, dafür einen Designer bzw. jemanden zu konsultieren, der Ahnung/Talent in der ganzen Sache hat. Das ist allerdings nicht erst seit WPF so.

Ich finde die Trennung von Code und Design durch XAML eine sehr gute Möglichkeit, dass sich beide Parteien (Programmierer und Designer) sich jetzt um die Dinge kümmern können, von denen sie etwas verstehen.

Gruß,
Fabian

14.02.2008 - 09:02 Uhr

Hallo zusammen,

mit der Dock-Eigenschaft kann man sich schon sicher sein. Man muss nur den Z-Index beachten, wie Grimmbizkit ja schon festgestellt hat:

Steuerelemente werden in ihrer Z-Reihenfolge angedockt, die die visuelle Überlagerung der Steuerelemente auf einem Formular entlang der Z-Achse (Tiefe) des Formulars darstellt.

Gruß,
Fabian

14.02.2008 - 08:59 Uhr

Hallo Sutix,

Werde dann wohl mal nach alternativen XAML-Editoren gucken.

empfehlen kann ich Dir Kaxaml oder XamlPadX 3. Kaxaml gefällt mir persönlich etwas besser.

Gruß,
Fabian

14.02.2008 - 08:01 Uhr

Hallo Froggie,

Deine Vorgehensweise ist mit Sicherheit durchführbar, allerdings mit sehr viel Aufwand verbunden. Sobald es ein paar Forms mehr werden, die evtl. noch etwas komplexer aufgebaut sind, steigt der Aufwand erheblich an.

Des Weiteren hat man auch nur eine sehr einfache Rechtestruktur (Level 1-10 beispielsweise). Ganz schnell kommen dann die lieben Kunden auf die Idee, man könnte doch Gruppen einführen, so dass Rechte vererbt werden können. Will man das dann auch alles manuell implementieren, steigt der Aufwand wieder erheblich an.

Ich würde mir daher die von svenson vorgeschlagenen Frameworks ansehen.

Gruß,
Fabian

14.02.2008 - 07:55 Uhr

Hallo dcna91,

noch ein kleiner Hinweis: Falls möglich, kann man auch WPF in Betracht ziehen. Damit lassen sich die von Dir genannten Dinge realisieren. Natürlich muss man abwägen, ob der Umstieg lohnt, wenn er überhaupt möglich ist.

Gruß,
Fabian

13.02.2008 - 20:20 Uhr

Hallo JamesPond,

ohh, dass mit dem XmlTextReader sehe ich jetzt erst. Den brauchst Du gar nicht. Folgendes müsste reichen, wobei "fs" einfach ein FileStream ist. Die Rückgabe der Load-Methode ist das root-Element der geladenen XAML-Datei:

XamlReader.Load(fs);

Nähere Infos findest Du hier, ein Beispiel von mir hier.

Gruß,
Fabian

13.02.2008 - 15:20 Uhr

Hallo hulkstar,

die MSDN sagt folgendes dazu:

A dialog box typically provides a special button to cancel a dialog, which is the button whose IsCancel property is set to true. A button configured this way will automatically close a window when either it is pressed, or when the ESC key is pressed. In either of these cases, DialogResult remains false.

A dialog box also typically provides an accept button, which is the button whose IsDefault property is set to true. A button configured this way will raise its Click event when either it or the ENTER key is pressed. However, it won't automatically close the dialog box, nor will it set DialogResult to true. You need to manually write this code, usually from the Click event handler for the default button.

Du musst also wirklich im ClickHandler explizit das Property DialogResult auf true setzen.

Gruß,
Fabian