Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von LaTino
Thema: Programm metrisch <=> UI in Zoll (Umrechnung)
Am im Forum: GUI: Windows-Forms

Die Aufteilung der Zuständigkeiten wird in WinForms so gut wie immer über das MVC-Pattern (Model-View-Controller) realisiert, DEN Controller meine ich. Ich war davon ausgegangen, dass, wenn ihr schon lobenswerterweise DataBinding benutzt, die Trennung entsprechend auch realisiert ist (alles andere würde nicht sehr viel Sinn ergeben). Falls das nicht so ist, müsstet ihr das sowieso nachholen bzw konsequenter umsetzen: so, wie ich dich verstehe, ist deine Klasse mit der Property A
der Kern eines zu entwickelnden Controllers. Das ist nicht so viel Aufwand, wie es klingt, ich würde vermuten, dass ihr da schon mehr als die Hälfte von dem habt, was ihr braucht.

([Artikel] Drei-Schichten-Architektur)

LaTino

Thema: Programm metrisch <=> UI in Zoll (Umrechnung)
Am im Forum: GUI: Windows-Forms

In WinForms? Den Controller splitten in abstrakten BasisController mit Implementierungen für anzuzeigende Skalen. Dann kannst du on the fly den Controller austauschen und kriegst die passenden Werte in den gebundenen Steuerelementen.

LaTino

Thema: Antwort-String eines Servers zerlegen und speichern
Am im Forum: Netzwerktechnologien

Servicepost.

LaTino ;)

Thema: [erledigt] Framework *.cs wird nicht gefunden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von Reggi
Hallo zusammen,

ich wundere mich, dass meine Abfrage:


if (!Int32.TryParse(selectedOrderLine.Gr_1, out int parsedInt) && parsedInt - 1 > -1)
    selectedOrderLine.Gr_1 = "0";
nicht funktioniert, bzw einfach nichts tut, wenn ich mein Programm ausführe.

Ich nicht so sehr. Wenn TryParse fehlschlägt, hat deine implizit deklarierte Variable parsedInt den Wert 0, und der abzüglich 1 ist nicht größer als -1. Diese Codezeile wird also nicht durchlaufen.

LaTino
EDIT: um's deutlicher zu machen: deine Bedingung entspricht, wenn man sie auseinandernimmt, dem Ausdruck !A && A, und der ist immer false.

Thema: Angelegte Properties von UserControl per Schleife abfragen
Am im Forum: Grundlagen von C#

Zum einen ist Reflection teu(r)er, wenn man Werte setzt - auslesen geht so.
Zum anderen darf bezweifelt werden, dass er tatsächlich soviele Controls hat, dass sich eine extene Bibliothek bezahlt macht. Ich würde behaupten, dass sich bei seinem Einsatzzweck Performancebetrachtungen nicht lohnen.

LaTino

Thema: Problem mit Pfadangaben bei "nuget pack -build"
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Jein. Ich benutze in diesem Szenario VS gar nicht (mal abgesehen vom Projektfile). Ausschließlich powershell und nuget (4.4.1). Möglich aber, dass eine ähnliche Ursache vorliegt, ich schau mal ob ich was finde dazu.

LaTino

Thema: Problem mit Pfadangaben bei "nuget pack -build"
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich versuche momentan, unsere buildscripts um einige Projekte zu erweitern, aus denen direkt nuget-Pakete erstellt (und später auf dem Intranet-Nugetserver bereitgestellt werden) sollen und stolpere über ein Verhalten, das ich mir nicht erklären kann.


nuget pack -Build .\project.csproj -Prop Configuration=Release

Buildvorgang läuft durch, beim Pack-Step kommt dann:
Fehler
Der Buildvorgang wurde erfolgreich ausgeführt.

//ein paar zeilen warnung wg Prozessorarchitektur weggelassen

Verstrichene Zeit 00:00:00.68

Paketerstellung der Dateien aus "C:\pfad\zu\solution\project\bin\Release\PublishOutput\solution\bin\Release".
Ein Teil des Pfades "C:\pfad\zu\solution\project\bin\Release\PublishOutput\solution\bin\Release" konnte nicht gefunden werden.

...was mich nicht wundert, weil es den Pfad nicht gibt und das Ergebnis des Buildprozesses brav dort liegt, wo es soll (c:\pfad\zu\solution\project\bin\release). Habe jetzt an einigen Einstellungen herumprobiert - egal, was ich tue, nuget beharrt auf diesem Pfad.

Kommt das jemandem bekannt vor? Ich bin erst einmal mit meinem Latein am Ende.

LaTino
(Interessant auch die "PublishOutput"-Erwähnung: das Textfragment "PublishOutput" kommt in keiner Datei im gesamten Solution-Verzeichnis vor...wtf?!

Thema: Die Anwendung befindet sich im Haltemodus ...
Am im Forum: GUI: WPF und XAML

Zitat von CoderboyPB
Gibt es irgendwie ne Möglichkeit, da dennoch an eine aussagekräftige Fehlermeldung ranzukommen, denn ich bin inzwischen hier mit meinem Latein am Ende, was VS zu k*cken hat ... ;(

Eigentlich steht da genug. An die Anwendung ist (sehr wahrscheinlich) ein Debugger angehängt, der sich im Haltemodus befindet. Wenn du nicht derjenige bist, der das debugging initiiert hat, dann häng dich selbst in die Anwendung und schau nach, wer das ist, und wieso.

VS hat nix zu k*cken, sondern geht davon aus, dass ein Entwickler am Bildschirm sitzt.

LaTino

Thema: Windows Dienst mit WCF oder Alternative
Am im Forum: Netzwerktechnologien

WCF hat die steilere Lernkurve. Wenn man beides noch nicht kennt, hat man mit WebAPI schneller ein funktionierendes Ergebnis. Mit WCF hat man daegegen das bessere Ergebnis in diesem Fall. net.tcp drängt sich ja geradezu auf, da stimme ich BhaaL zu.

LaTino

Thema: Dynamisches Options-Menü möglich?
Am im Forum: GUI: Windows-Forms

Klingt eher wie etwas, das ich über ein Plugin-System lösen würde. Wie das mit dem "automatischen Entstehen" funktionieren kann, schrieb ich ja oben bereits.

LaTino

Thema: Dynamisches Options-Menü möglich?
Am im Forum: GUI: Windows-Forms

Zitat von Gimmick
Geht das, ohne dass man für jeden neuen Entrag wieder im UI ergänzen muss? Eventuell eine Art automatisch generierte Tabelle oder sowas, die alles frisst und darstellt, was ihr geschickt wird?

Ja
  • . Ich würde die entsprechenden Methoden und ihre Parameter mit eigenen Attributen dekorieren und dann die Attribute bei der Erstellung des Optionsmenüs auswerten. Alles zusammen genommen klingt die Idee aber nicht so sexy - Ziel ist, _wenig_ Optionen zu haben, und nicht automatisiert seine Einstellungen zuzumüllen.

    LaTino
  • grundsätzlich geht alles. Die Frage ist nicht, ob es eine Lösung gibt, sondern, ob ich das richtige Problem habe und wie eine _gute_ Lösung dazu aussieht.

    EDIT: @emuuu ich glaube nicht, dass das seine Frage war.
  • Thema: Wie funktioniert RuntimeHelpers.PrepareConstrainedRegions?
    Am im Forum: Basistechnologien und allgemeine .NET-Klassen

    Zitat von Palladin007
    könnte man ja auch so umschreiben, dass die Exception im try geworfen wird.

    Ja, könnte man, aber dann hätte man im Fall, dass eine Exception geworfen wird, die Erzeugung dieser Exception am Hacken, obwohl man die sowieso wegwerfen möchte. Man spart sich eine Propagation.

    Eine exception, die im finally geworfen wird, sorgt dafür, dass eventuell im try geworfene Ausnahmen verworfen werden. Stattdessen wird die finally-Ausnahme hochgebubbelt.

    C# Language Spec
    *blätter*
    S. 438 bei mir, Abschnitt 8.9.5. Lohnt sich, den ganzen Abschnitt mal gründlich zu lesen.

    LaTino

    Thema: Ungültige Länge für base-64-Zeichenarray oder -Zeichenfolge
    Am im Forum: Basistechnologien und allgemeine .NET-Klassen

    Den Stacktrace deiner Ausnahme. Andererseits, wenn du den hast, kannst du das Problem auch selbst eingrenzen...

    LaTino

    Thema: Wie kann ich eine Liste mit N Items richtig serialisieren?
    Am im Forum: Basistechnologien und allgemeine .NET-Klassen

    Du hast die Tuple-Klasse falsch verstanden. Tupel sind Paare geordneter Werte. Was du suchst, ist eine Menge von Zeichenketten, denen eine Liste von double-Zahlenwerten zugeordnet ist. Das kann man zwar mit der Tuple-Klasse abbilden, aber dafür ist sie eigentlich nicht da (sondern eher für sehr kurzlebige Konstrukte).

    
    class MappedValue
    {
        public string Ident { get; set; }
        public IEnumerable<double> Values { get; }
        
        public MappedValue(string ident, IEnumerable<double> values)
        {
            //selbst ausfüllen
        }
    }
    
    public IEnumerable<MappedValue> GetValuesFromStream(Stream inputStream)
    {
       using(inputStream)
       {
           while(...)
           yield return new MappedValue(...); //yield in einem using ist möglicherweise nicht optimal. Schwer einschätzbar ohne mehr Code von dir zu kennen
        }
    }
    

    LaTino

    EDIT: [Hinweis] Wie poste ich richtig? pro Thema ein Thread. Jetzt muss ein Admin das Abtrennen, weil du zu faul warst :(

    Thema: Ungültige Länge für base-64-Zeichenarray oder -Zeichenfolge
    Am im Forum: Basistechnologien und allgemeine .NET-Klassen

    Ich kann mich irren, aber der Fehler wird vermutlich (hier müssen wir raten, weil du uns diese Information vorenthältst) von dieser Zeile hier ausgelöst:

    
    byte[] cipherBytes = Convert.FromBase64String(cipherText);
    

    Ist, wenn ich nix übersehe, auch die einzige Zeile, die genau diesen Fehler bringen kann. Die Methode erwartet eine gültige Base64-Zeichenkette. Die Länge muss eine durch 3 teilbare Zahl sein, ist sie es nicht, werden hinten ein oder zwei Gleichheitszeichen angehängt, damit sie es wird. Offenbar ist dies in deinem Versuch nicht der Fall, weshalb der Fehler kommt.

    Anders als von dir dargestellt wäre das aber in der Decrypt-Methode, nicht in der Encrypt-Methode. Wie gesagt, wir raten hier etwas.

    LaTino

    Thema: Anfänger Frage: Controls von anfangs an richtig benennen
    Am im Forum: GUI: Windows-Forms

    Zitat von jok3r89
    erst mal vielen Dank,
    Ich hab eben ein wenig Erfahrungen mit Xcode und Swift sammeln können, und da läuft das alles irgendwie so intuitiv ab. Und hier fehlt mir immer wieder etwas damit ich damit warm werde.
    Gruß

    Glaub's ruhig: umgekehrt ist es genauso. Normale Umstellungsschwierigkeiten. Davon ab ist VS (MIT Addons) meiner Meinung nach immer noch die beste existierende IDE (selbst, wenn man programmiersprachenunabhängig vergleicht). Aber mit solchen Aussagen haben schon Glaubenskriege angefangen ;).

    LaTino

    Thema: Anfänger Frage: Controls von anfangs an richtig benennen
    Am im Forum: GUI: Windows-Forms

    Zitat von jok3r89
    Wenn ich einen Btn hinzufüge wird ja automatisch im form.Designer.cs der code erzeugt. Anschließend kann ich den Namen in der GUI ändern der code wird auch geändert.
    So was mich aber jetzt stört wenn ich etwas umbenenne wird meine Methode mit dem Ereignis Click nicht umbenannt.

    Die Refactoring-Tools von Visual Studio werden zwar mit jedem Release besser, aber mit so etwas haben sie so ihre Schwierigkeiten. Dedizierte VS-Addons bekommen das naturgemäß viel besser hin, finden die meisten relevanten Erwähnungen und benennen die dann gleich mit um. Beispielsweise:

    
    partial class SimpleBoundForm : Form
    {
        public SimpleBoundForm(ExampleController controller)
        {
            InitializeComponent();
            _exampleTextbox.DataBindings.Add("Text", controller, "TextProperty");
        }
    }
    
    Wird jetzt per VS-Refaktoring die Property "TextProperty" der Klasse "ExampleController" umbenannt, übersieht VS diese Zeile, was zu einer ungültigen Datenbindung führt. Resharper (nur ein Beispiel) hat dagegen damit überhaupt kein Problem.

    Langer Rede kurzer Sinn: die richtigen Tools verwenden, oder mit den Einschränkungen leben.

    LaTino

    Thema: Bibliothek, mehrere getrennte Werte zurückgeben
    Am im Forum: Grundlagen von C#

    Zitat von Lizz4rd
    Zitat von LaTino
    Du willst für eine vorgegebene Zahl r zwei beliebige aufeinander folgende Primzahlen, die kleiner sind als [EDIT] eine zufällige Zahl, die kleiner ist als r[/EDIT]?

    Ich habs eher so gemeint: Ich erzeuge eine Zufallszahl zwischen 0 und r. Dann uberprüfe ich ob diese eine Primzahl ist --> Nein --> Zufallszahl um eins erhöhen --> überprüfen
    Wenn ich eine finde dann speichere ich diese in der Variable a ab.
    Dan erhöhe ich wieder die Zufallszahl und speichere die nächste Primzahl in der Variable b ab.

    Dann lautet deine Aufgabe also:
    "Finde für eine gegebene Zahl x eine zufällige Zahl r zwischen 0 und x, und gib die ersten beiden Primzahlen p0 und p1 aus, für die gilt: r ≤ p0 < p1."

    Lagerst du das Erzeugen der Zufallszahl in den Kontext aus (was du tun solltest, denn, wie Abt sagt: so funktioniert Random nicht), bleibt übrig:

    Tuple<int, int> FindPrimes(int startValue) (bzw mit den neuen Tupeln (int FirstPrime, int SecondPrime) FindPrimes(int startValue))

    Der Pseudocode dafür sollte sein:
    
    in einer Endlosschleife
        ermittle, ob der Zählwert eine Primzahl ist
        wenn ja und bereits eine Primzahl gespeichert wurde
            gib ein Tupel aus bereits gespeicherter Primzahl und dem Zählwert zurück, beende Funktion
        wenn ja und noch keine Primzahl gespeichert wurde
             speichere Zählwert als erste Primzahl
        erhöhe den Zählwert um eins
    

    Tatsächlich ist die gesamte Methode auch nur 5 Zeilen lang und du brauchst nur eine einzige lokale Variable (statt 4). Schau dir dafür mal das hier an. Werd' außerdem die Inline-Methode los, in diesem Fall bringt die dich nur dazu, sie mehrfach aufzurufen: bedenke, dass bei jedem Aufruf von IstPrim() eine Schleife durchlaufen wird, die für sehr große Zahlen eine Weile brauchen wird. Jeder zusätzliche Aufruf dauert dann wieder...

    Das wichtigste, um wirkliche Zufallszahlen zu erhalten, wäre aber, das Random aus deiner Methode zu verbannen.

    LaTino

    Thema: [Solved] Wie kann ich mit VB.NET einen Screenshot erstellen und ausdrucken?
    Am im Forum: GUI: WPF und XAML

    Du missverstehst. Ich weiß die Lösung nicht genau, aber ich bin mir relativ sicher, dass es sich um ein Problem beim skalieren handelt, dafür ist das Bild typisch. Und deshalb solltest du, was du ja auch machst, alle Stellen, an denen (vielleicht) skaliert wird, eliminieren, danach Stück für Stück wieder einfügen und während der ganzen Zeit das Ergebnis abgleichen. Stattdessen machst du - so mein Eindruck - lieber einen Nebenschauplatz auf und diskutierst die Frage, ob du nicht DrawImageUnscaled benutzen kannst, obwohl im Quelltext von .NET zu sehen ist, dass beides identisch ist und eine Diskussion darum mehr als sinnlos. Bring das Bild erstmal unskaliert auf's Papier, prüfe die Qualität, dann skaliere so, dass du's unter Kontrolle hast (i.e. ohne Methoden zu nutzen, die implizit skalieren). So wird ein Schuh draus.

    LaTino

    Thema: [Solved] Wie kann ich mit VB.NET einen Screenshot erstellen und ausdrucken?
    Am im Forum: GUI: WPF und XAML

    "verkehrt" ist daran nichts, die Methode sieht halt so aus:

    Zitat von Reference Source Graphics.cs

    
    public void DrawImageUnscaled(Image image, int x, int y) {
                DrawImage(image, x, y);
            }
    

    Ich dachte allerdings, du wolltest dein Problem lösen und nicht Haare spalten. Mein Fehler.

    LaTino

    Thema: [Solved] Wie kann ich mit VB.NET einen Screenshot erstellen und ausdrucken?
    Am im Forum: GUI: WPF und XAML

    Zitat von _Cashisclay
    danke für deine Antwort, du meinst wahrschein DrawImageUnscaled.

    Nein. Ich meine das, was ich schrieb. In der Dokumentation steht, welche Methode skaliert, und welche nicht: Graphics.DrawImage.


    LaTino

    Thema: [Solved] Wie kann ich mit VB.NET einen Screenshot erstellen und ausdrucken?
    Am im Forum: GUI: WPF und XAML

    Dein DrawImage-Aufruf skaliert das Bild, dabei gehen dir einige Informationen verloren. Stattdessen Bild vorher händisch skalieren und eine Überladung von DrawImage benutzen, die nicht skaliert.

    LaTino

    Thema: [Solved] Wie kann ich mit VB.NET einen Screenshot erstellen und ausdrucken?
    Am im Forum: GUI: WPF und XAML

    Das mag damit zusammen hängen, dass die URL in deiner Browserleiste mycsharp anzeigt, nicht myvb ;)

    http://bfy.tw/EgZK

    LaTino

    Thema: Bibliothek, mehrere getrennte Werte zurückgeben
    Am im Forum: Grundlagen von C#

    Du willst für eine vorgegebene Zahl r zwei beliebige aufeinander folgende Primzahlen, die kleiner sind als [EDIT] eine zufällige Zahl, die kleiner ist als r[/EDIT]? Verstehe ich das richtig?

    LaTino

    Thema: Daten zwischen Client & Server verschlüsselt übertragen
    Am im Forum: Rund um die Programmierung

    Wie ist denn der Grund dafür, dass du das unbedingt selbst entwickeln möchtest?

    (TLS)

    Möglicherweise hast du ja gute Beweggründe, aber im Allgemeinen sind gerade im Sicherheitsbereich die etablierten Lösungen besser als alles, was man sich selbst am Küchentisch ausdenkt.

    LaTino

    Thema: Desktop-Entwickler = Fullstack-Entwickler?
    Am im Forum: Smalltalk

    Sehr ich auch so. Stellenausschreibungen oder auch Bewerbungen mit dem Begriff sind schon Papierkorb-Kandidaten. Erfahrungsgemäß nichts als heiße Luft.

    LaTino

    Thema: SVG einbinden, verschiedene Größen
    Am im Forum: GUI: Windows-Forms

    Zitat von Duesmannr
    Beabsichtig war das nicht.

    Natürlich nicht, ich hab' mich auch mehr über mich geärgert, dass ich bei der Aussage nicht misstrauisch geworden bin ;).

    Alles gut.

    LaTino

    Thema: Ohne Reflektion, this Parameter übergeben und (z.B. aus Variablenname) eine ID generieren
    Am im Forum: Grundlagen von C#

    Damit mir keiner unkonstruktive Kritik vorwirft.

    
    public delegate void SynchronizingEventHandler(byte[] data, bool writeToData);
    
    public interface ISyncBehaviour
    {
        event SynchronizingEventHandler Synchronizing;
        void RegisterNewSyncObject(SynchronizedObject syncObj);
        void SyncRead();
        void SyncWrite();
    }
    
    //"Observable"
    public class SynchronizedObject
    {
        private bool _isDirty;
        private int _value;
    
        public int Value
        {
            get => _value;
            set
            {
                if (EqualityComparer<int>.Default.Equals(_value, value)) return;
                _value = value;
                _isDirty = true;
            }
        }
    
        public SynchronizedObject(int value)
        {
            _value = value;
        }
    
        public void Sync(byte[] data, bool writeToData)
        {
            if (!writeToData) Value = BitConverter.ToInt32(data, 0);
            else
            {
                if (!_isDirty) return;
                _isDirty = false;
                var valueBytes = BitConverter.GetBytes(Value);
                Array.Copy(valueBytes, data, sizeof(int));
            }
        }
    }
    
    //"Observer"
    public class ExampleClass : ISyncBehaviour
    {
        public byte[] Data { get; } = new byte[sizeof(int)];
    
        public void Init(int value)
        {
            var bytes = BitConverter.GetBytes(value);
            Array.Copy(bytes, Data, sizeof(int));
        }
    
        #region Kann auch in eine abstrakte Basis verlagert werden
        public void RegisterNewSyncObject(SynchronizedObject syncObj)
        {
            Synchronizing += syncObj.Sync;
        }
    
        public void SyncRead() => OnSynchronizing(Data, true);
        public void SyncWrite() => OnSynchronizing(Data, false);
    
        public event SynchronizingEventHandler Synchronizing;
        protected void OnSynchronizing(byte[] data, bool writeToData) => Synchronizing?.Invoke(data, writeToData);
        #endregion
    }
    
    

    Natürlich wird bei mehreren synchronisierten Objekten data immer wieder überschrieben, aber das ist ja quasi eine Anforderung von dir (soll heissen: über das Thema hast du kein Wort verloren, und es ist auch in deinem Code so.)

    Anwendung:

    
    var synchronizedObjects = new List<SynchronizedObject> {new SynchronizedObject(10), new SynchronizedObject(20)};
    
    var syncingContext = new ExampleClass();
    syncingContext.Init(-100);
    synchronizedObjects.ForEach(syncingContext.RegisterNewSyncObject);
    
    syncingContext.SyncWrite(); //alle SynchronizedObjects haben jetzt denselben Wert
    synchronizedObjects.ForEach(p => Console.WriteLine(p.Value));
    
    synchronizedObjects.First().Value = 9999; //beide "dirty" markieren, damit sich beide melden
    synchronizedObjects.Last().Value = 99;
    
    syncingContext.SyncRead(); //der Wert aller SynchronizedObjects wird nach Data gelesen. Das letzte gewinnt.
    Console.WriteLine(BitConverter.ToInt32(syncingContext.Data, 0));
    

    LaTino

    Thema: Ohne Reflektion, this Parameter übergeben und (z.B. aus Variablenname) eine ID generieren
    Am im Forum: Grundlagen von C#

    Zitat
    @LaTino:. Mal ehrlich, einen Bitoperator tippt man doch nun wirklich nur sehr bewusst ein!

    Stimmt, damit hast du den Grund für meine Kritik präzise in einen Satz gefasst. Es hat immer - IMMER - das Prinzip der geringsten Überraschung zu gelten. Möglicherweise benutzt jemand deine Klasse, um Werte einer auf int basierenden flags-Enumeration zu speichern, und will dem aktuellen Wert ein Bit hinzufügen. Na, der wird sich umschauen.

    Der Punkt ist, und ich formuliere es mal ganz hart: was du da machst, ist nicht weiter als möglichst originellen Code zu schreiben und sich auf die eigene Cleverness einen runter....naja. Nur: weder ist es clever, noch ist es kollegial, noch professionell. Wenn du das Bedürfnis nach so was hast: dafür gibt's Sprachen wie Brainfuck.

    Der Rest deines Codes ist eine sehr krude Neuerfindung des Observer-Patterns. Wird in c# wie gesagt mit Events geregelt, in deinem Fall würde die Methode syncall einfach das Event feuern, und die Abonnenten würden sich dann eben synchronisieren.

    Aber das wäre dir aufgefallen, wenn du nicht auf Gedeih und Verderb Elemente aus C in c# abbilden wollen würdest.

    LaTino
    EDIT: deine Operatorüberladung funktioniert übrigens nichtmal, du greifst im statischen Kontext auf eine Membervariable zu.

    Thema: SVG einbinden, verschiedene Größen
    Am im Forum: GUI: Windows-Forms

    Joar, hab mich von dir aufs Glatteis führen lassen.

    Zitat
    @LaTino
    Width und Height kann man ja in der Draw Methode festsetzen.

    Was natürlich nicht stimmt, denn während doc.Width und doc.Height die Dimensionen des SVG festlegen, legt Draw(int, int) die Größe der Rasterung fest.

    Also einfach mal das tun, was ich im allerersten Post schrieb, dann klappt's auch mit dem Nachbarn.

    LaTino
    EDIT: das ist der Grund, wieso man a) sich Dokumentationen genau anschaut und b) Vorschläge aus dem Forum erst einmal 1:1 probieren sollte, bevor man selbst kreativ wird.