[UPDATE 20.10.2020] - MetroSuite 2.0 - Holt euch den modernen Windows 10 Style.

    • Release
    • Closed Source

    Es gibt 1.336 Antworten in diesem Thema. Der letzte Beitrag () ist von AKP.

      Nein.. verwende die metroform und setze dort unter Eigenschaften "MainControlBox".
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      - Update auf 2.0.1.4
      • Changed control descriptions.
      • Fixed tabcontrol ItemTextAlign.
      • Changed tabcontrol style property.
      • Implemented new control: MetroKnob (check below)

      MetroKnob
      Der MetroKnob ist ein Drehknopfsteuerelement welches nun auch endlich die MetroSuite im ein etwas "spezielleres" Control erweitert.
      Prinzipiell funktioniert er genauso wie eine Trackbar. Es können die Minimum- sowie Maximumwerte angepasst werden, genauso wie die zwei Anschlagpunkte (mit BlockedAngle).
      Mit etwas Spielerei kann der MetroKnob somit auch zu einem Gauge-Control werden.

      Er besitzt ebenfalls viele diverse Stile. Siehe: KnobStyle sowie FillMode und HatchStyle.



      .Extensions - Update auf 1.0.1.1
      • Added theme support for MetroKnob.
      • Added 'MetroSuite - TestApp (themes)' to MetroSuite.Extensions(vX.X.X).zip
      • Minor bug fixes.


      Download im ersten Post.
      Bilder
      • d-Knob.PNG

        43,24 kB, 339×936, 799 mal angesehen
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Bitte fix doch mal die Icons bei der MetroForm: Du machst wie erstaunlich viele Leute, die Themes programmieren, den Fehler, das Icon direkt zu verwenden, womit es das Icon in der Standartgröße nimmt und skaliert, was in einem hässlichen Icon resultiert, wenn das verwendete Icon mehrere Größen bereitstellt. Die richtige Version des Icons zu bekommen ist eigentlich verdammt einfach - ich habe für mich eine Extension draus gemacht:

      C#-Quellcode

      1. public static Bitmap Extract(this Icon original, int size)
      2. {
      3. using (Icon icon = new Icon(original, new Size(size, size)))
      4. {
      5. return icon.ToBitmap();
      6. }
      7. }

      Den Code kannst du gerne übernehmen, damit die Icons auch ordentlich aussehen :)
      Ist mir bis dato nicht aufgefallen, und habe ich nicht bedacht. Danke!




      - Update auf 2.0.1.5
      • Fixed MetroForm icon extraction. (thanks @nafets)


      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gather“ ()

      Also mal wirklich großes lob nochmal!
      Ich bin von der 2.X wirklich geflasht! Aber mal eine Frage, warum ist dein Chanelog immer auf englisch?

      Gather schrieb:


      • Added theme support for MetroKnob.
      • Added 'MetroSuite - TestApp (themes)' to MetroSuite.Extensions(vX.X.X).zip
      • Minor bug fixes.

      Würd mich mal interressieren

      Grüße
      こんにちわ
      Achte beim stellen von Fragen auf eine genaue Fragestellung, mir passiert das selbst häufig, andere können dir dann nicht so gut helfen.
      Wieso denn nicht? :)
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Hallo zusammen

      Das Wichtigste zuerst: Man kann gar nicht oft genug loben, was für spitzenmässige Controls du/ihr da raushaut. Ich kann nur erahnen, was das an Zeit und know-how erfordert. :thumbup:

      Trotzdem hätte ich noch eine allgemeine und eine spezifische Frage: Ich habe mich gefragt, was aus der MetroPictureBox in Version 2.0 geworden ist? Ich habe gelesen, dass einige Controls ausgelagert wurden, jedoch habe ich nichts weiter zu diesem einen Control gefunden...

      Ein spezifisches Problem habe ich bei der Verwendung des MetroTabControl . Dieses befindet sich in meinem Projekt in einer TabPage eines normalen TabControls, welches sozusagen als übergeordnetes Hauptmenu fungiert. Wechsle ich nun den Tab dieses normalen TabControls mittels

      VB.NET-Quellcode

      1. TabControl1.SelectedTab = TabPage2
      2. TabPage2.Select()


      kommt es in Zeile 1 zu einer ArgumentOutOfRangeException: InvalidArgument=Value mit dem Wert -1 ist für index ungültig.

      Etwas ganz ähnliches geschieht, wenn ich dem MetroTabControl an zweitletzter Stelle mittels

      VB.NET-Quellcode

      1. MetroTabControl1.TabPages.Insert(MetroTabControl1.TabPages.Count - 1, newPage)​

      eine neue TabPage hinzufügen will: ​InvalidArgument=Value mit dem Wert 3 ist für index ungültig. Eigenartig ist zudem, dass wenn ich den Code in .TabPages.Count -2 abändere, die Fehlermeldung ebenfalls auf "Wert 3" lautet.
      Lässt man die Subtraktion ganz weg oder macht das Ganze mittels ​TabPages.Add(newPage) funzt es einwandfei - nur dass die TabPage natürlich an letzter anstatt an vorletzter Stelle erscheint.

      Entschuldigt bitte, wenn ich etwas offensichtliches übersehen oder überlesen habe :whistling:

      Lg CodeRed
      Umfangreicher Converter im Browser: CloudConvert
      Temporäre e-Mail: temp-mail
      Text-Übersetzter: DeepL
      Kostenloser Webspace: bplaced
      @CodeRed
      Erstmals vielen Danke für dein Feedback!
      Zur MetroPicturebox, diese habe ich vorerst entfernt, da mir der Stil nicht ganz gefiel, und sie eigentlich nichts außergewöhnliches bot. Vermutlich kommt dieses Steuerelement jedoch nochmal.
      Ausgelagert wurden lediglich Diagramme in die GChartLib. (Ein anderes Projekt von mir).

      Zum Fehler kann ich im Moment nicht viel sagen, außer dass ich ihn mir auf jeden Fall ansehen werde.
      Frage jedoch:

      CodeRed schrieb:

      kommt es in Zeile 1 zu einer ArgumentOutOfRangeException: InvalidArgument=Value mit dem Wert -1 ist für index ungültig.

      Dieser Fehler Tritt beim Normalen TabControl auf, wenn das MetroTabControl darin enthalten ist?
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Hi @Gather

      Wow das ging ja fix. Vielen Dank für die Antwort !

      Ja genau, der Fehler tritt dann auf, wenn ich den SelectedTab des normalen TabControls ändere bzw. setze. Wechsle ich dort vom "StartTab" zu einer (normalen) TabPage, die ein MetroTabControl enthält, funktioniert alles so wie's soll.
      Problematisch wird's erst, wenn ich von einer anderen TabPage (ob diese selbst ein MetroTabControl beinhaltet scheint egal zu sein) auf jene wechsle, die das MetroTabControl beinhaltet.

      Ist ein wenig verwirrend, aber ich hoffe ich konnte es einigermassen verständlich beschreiben... X/

      LG CodeRed
      Umfangreicher Converter im Browser: CloudConvert
      Temporäre e-Mail: temp-mail
      Text-Übersetzter: DeepL
      Kostenloser Webspace: bplaced
      Moin Gather,
      erstmal ein großes Lob an dich wegen deiner wunderschönen Control-Sammlung. Ich verfolge das ganze Projekt jetzt nun seit über 5 Jahren (Ende 2012 diese Controls entdeckt :love:) und muss echte sagen, dass sich diese Library wunderbar entwickelt hat.
      Ich programmiere nun seit längerem mal wieder eine WinForms Anwendung in C# (die letzten Jahre nur Konsolen-Server-Anwendungen) und ich hab folgendes Problem mit deiner Library:

      Ich habe ganz normal die Verweise für die Haupt DLL und die Extension DLL gesetzt und die Controls in die Toolbox hinzugefügt. Jedes Control, welches ich von der MetroSuite anwende, erscheint nicht im Designer auf der Form, sondern es erscheint wie ein Timer o.ä. unter dem eigentlichen Designer. Mache ich iwas falsch? Ich mache genau das gleiche wie ich es vor Version 2 auch getan habe.

      Außerdem habe ich noch 2 weitere Fragen:
      Ist zufälligerweise eine MetroMenuStrip und eine MetroStatusBar geplant?
      Und wie genau initialisiere ich die MetroControlBox für die MetroForm? Ich habe dein Beispiel mal in C# übersetzt und ins Form_Load-Event gesetzt, jedoch funktioniert dies nicht. Ich entschuldige mich für diese dummen Fragen, jedoch bin ich wirklich aus der Thematik WinForms raus ?( :whistling:

      LG
      Jenkins
      Danke für die Kritik!

      JenkinsDev schrieb:

      sondern es erscheint wie ein Timer o.ä. unter dem eigentlichen Designer
      Ich bin ehrlich, ich habe im Moment, keine Ahnung wie so etwas passieren kann. Grundsätzlich sollte dies gar nicht möglich sein, da die Controls von der Basisklasse "Control" erben. Ebenfalls ist es mir nicht möglich den Fehler zu reproduzieren...

      JenkinsDev schrieb:

      Und wie genau initialisiere ich die MetroControlBox für die MetroForm?

      Grundsätzlich ist eine Initialisierung der MetroControlBox nur dann nötig, wenn andere Schaltflächen hinzugefügt werden sollen, beziehungsweise bestimmte entfernt. Wenn du die Standardschaltflächen möchtest (Schließen, Minimieren & Maximeren) muss lediglich die Eigenschaft LoadDefaultAreas true entsprechen. Sollen jedoch eigene Schaltflächen hinzugefügt werden kann dies z.B. wie folgt bewerkstelligt werden:

      C#-Quellcode

      1. private void Form1_Load(object sender, EventArgs e)
      2. {
      3. MetroSuite.MetroControlBoxArea area = new MetroSuite.MetroControlBoxArea(MetroSuite.MetroControlBoxArea.ControlBoxAreaType.Custom, MetroSuite.Design.Style.Light, "custom1", true);
      4. area.AreaImage = Image.FromFile("BILDDATEI"); // Eigenes Icon
      5. metroControlBox1.Areas.Add(area);
      6. }

      Nun muss lediglich das Event behandelt werden, welches angibt was passiert sobald die neue Eigene Schaltfläche gedrückt wird:

      C#-Quellcode

      1. private void metroControlBox1_AreaClicked(object sender, MetroSuite.MetroControlBox.MetroControlBoxEventArgs e)
      2. {
      3. switch (e.Item.Name)
      4. {
      5. case "custom1":
      6. MessageBox.Show("It worked!");
      7. //Testbespiel
      8. break;
      9. }
      10. }


      Ergebnis:


      JenkinsDev schrieb:

      Ist zufälligerweise eine MetroMenuStrip und eine MetroStatusBar geplant?

      Geplant ja, jedoch möchte ich vorerst die Library nicht mit neuen Controls überladen :)

      Lg. Martin
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Vielen Dank für die schnelle Antwort :thumbup:
      Ich kann es mir auch nicht erklären wodurch dieser Fehler entsteht. Im Anhang findest du ein Bild wie es zum jetzigen Zeitpunkt aussieht, wenn ich ein neues Control in den Designer ziehe.



      Und zur MetroControlBox:
      Meine Form besitzt nicht mals die Property 'LoadDefaultAreas' oO
      Ist zufälligerweise eine Version von der Library auf NuGet verfügbar?

      LG Jenkins

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „JenkinsDev“ ()

      Ja. Du musst das Control "MetroControlBox" auf die Form ziehen. Diese besitzt jene Eigenschaften
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Ich verstehe nicht ganz wie es zu so etwas kommen kann.. ich versuche mal mein Glück und schau es mir an.
      Du verwendest die neueste Version mit dem passenden Framework, in C# bzw vb.net? Welche Windows Version?
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Versuch doch mal:
      - keine Referenz in den Verweisen des Projekts
      - DLL im Toolbar installieren
      - Dann sollten alle Controls sichtbar sein
      Wenn Du zusätzlich die DLL in den Verweisen von Hand referenzierst, ist dies eine andere als die vom Toolbar, weil nach meinem Wissen die bei der Installation an einen anderen Ort kopert wird.

      KidRick schrieb:

      Hey, gibt es noch eine Möglichkeit eine Demo runterzuladen? Im Anhang befindet sich nur die DLL in der ZIP

      Demo in welcher art?
      Edit:// Eine kleine Vorschau ist in der MetroSuite.Extensions.zip, dabei werden die verschiedenen Themen gezeigt.
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gather“ ()