also wenn das nicht gestellt ist dann ist es ja schon echt traurig! =)
Hallo,
also ein Programm in Zeilen zu messen ist immer problematisch. Theoretisch kann man ja jedes Programm in einer Zeile schreiben... =)
Es kommt vor allem darauf an was dein Programm leistet und was im Vergleich dazu ähnliche Programme leisten können.
Was willst du denn für ein Programm verkaufen?
XAML ist, sehr vereinfacht ausgedrückt das, was in windows forms der code für die InitializeComponent() Methode ist, nur in deklarativer Form. Wenn man WPF ohne XAML betreibt, produziert man solchen Code selbst. Das ist zwar auf Dauer etwas nervenaufreibend, geht aber natürlich ohne Probleme.
Hallo Lothi,
grundsätzlich kannst du ein WPF Window sowie alle anderen Objekte per C# Code erzeugen.
Willst du auch XAML nutzen, reicht csc alleine nicht mehr aus. Dafür müsstest du MSBuild nehmen, was allerdings nur mit Solution und VS Projektdateien arbeitet.
Original von Robertico
Wie der Editor die encoding herausholt, weis ich noch nicht. Erholt aber aus den von mir in NotePad erstellten die encoding Windows-1252 heraus und die bleibt dann auch bestehen.
Der StreamReader erkennt die Byte Order Marks automatisch, wenn du beim Aufruf des Konstruktors das detectEncodingFromByteOrderMarks Flag setzt.
Entsprechend schreibt der StreamWriter die BOMs des gesetzten Encodings (die es nur für Unicode Codierungen gibt.)
Weitere Infos zu BOMs gibts z.b. hier:
http://www.websina.com/bugzero/kb/unicode-bom.html
hallo hertel.k,
List<ListBox> ist vermutlich das, was du suchst.
der herr der ringe ist natürlich unter meine favoriten zu zählen, auch wenn ich ja immer noch der meinung bin, dass tolkien nur durch das geschriebene wort richtig rüberkommt.
andere meisterwerke:
ghost dog, night on earth, lost highway, dead man, from dusk till down, pulp fiction usw. usf.
Der Fehlermeldung nach zu urteilen wohl die mscorlib, bzw. das .net framework.
hallo zusammen,
Cider ist noch immer im CTP Status. In der Release Version werden die genannten Dinge auch wieder funktionieren, bis dahin kann ich nur jedem raten mit Expression Blend zu arbeiten.
hallo zusammen,
ich denke auch, dass es am Programmsymbol liegt. Das ist jedenfalls der einzige Unterschied zwischen einem (minimalen) Projekt und einer einzelnen Quelldatei (Program.cs).
Da VS über msbuild ja auch csc.exe benutzt, wird auf jeden Fall der gleiche Programmcode erzeugt.
Wegen 11kb würde ich aber auch gar nicht erst weiter darüber nachdenken =)
hast du im VS vielleicht die Debug Version erzeugt? Die enthält neben dem Programmcode auch diverse Debug Informationen.
Hallo JackSparrow,
ListViewItem.SubItems
hallo Kovu,
ich würde ehr die Unterschiede/Paralallelen zwischen c# und java ansprechen und vor allem einen allgemeinen überblick über die architektur des .net frameworks geben.
Hallo Kuehner,
Original von Kuehner
Type TypeToR = assembly.GetType(pluginType.ToString());
ist überflüssig.
Statt dessen kannst du in diesem code direkt
deinObjekt = Activator.CreateInstance(pluginType);
sagen.
Hallo Maruu,
Assembly.Load / Assembly.LoadFrom
hallo zusammen,
wenn man für events die add/remove accessors implementiert, kann das event nicht mehr über seinen namen gefeuert werden. eine möglichkeit wäre, den delegaten (z.b. in einer liste zu speichern) und diesen dann aufzurufen.
hier ein sehr sinnentleertes beispiel: =)
class Foo
{
List<EventHandler> _eventStorage;
public Foo()
{
_eventStorage = new List<EventHandler>();
}
public event EventHandler MyEvent
{
add
{
_eventStorage.Add(value);
}
remove
{
_eventStorage.Remove(value);
}
}
public void Boo()
{
FireEvents();
}
void FireEvents()
{
foreach (EventHandler del in _eventStorage)
{
del.Invoke(this, null);
}
}
}
siehe auch
http://msdn.microsoft.com/msdnmag/issues/06/11/NETMatters/default.aspx?loc=de
Hallo onlinegurke,
damit läufst du über alle Properties... außerdem fehlt ein () nach GetProperties 😉
ungefähr so könnte es gehen:
List<Color> GetSystemColors()
{
Type type = typeof(SystemColors);
PropertyInfo[] properties = type.GetProperties();
List<Color> list = new List<Color>();
foreach (PropertyInfo property in properties)
{
if (typeof(Color).IsAssignableFrom(property.PropertyType))
{
list.Add((Color)property.GetValue(null, null));
}
}
return list;
}
hallo punkdevil,
SystemColors ist eine abstrakte Klasse. foreach kannst du nur für Objekte verwenden, die IEnumerable implementieren.
Du kannst jedoch Reflection verwenden um an alle Farben ranzukommen.
hallo zusammen,
naja, "einbinden" ist da wohl nicht gerade passend. coco/R generiert Parser aus einer attributierten Grammatik. Ohne weiteres zutun sind diese Parser "nur" Akzeptoren und geben per default keinen Syntaxbaum zurück.
hallo herbivore,
ich habe es jetzt so verstanden, dass er statt ListBoxItem Objekten eigene Objekte in die ListBox einfügt, was ja in WPF möglich ist.
Also in der Form:
<ListBox>
<MeinControl>Item 1</MeinControl>
<MeinControl>Item 2</MeinControl>
</ListBox>
Wenn ListBoxItem Objekte verwendet werden sehe ich kein Problem fürs fokussieren, da diese über FrameworkElement von UIElement erben.
hallo eclere,
Den Focus auf das SelectedItem setzen geht auch nicht, da ListBoxItem in meinem Fall eine eigene Klasse ist und nicht ein FrameworkElement.
Wovon erbt deine Klasse denn? Um fokussieren zu können musst du zumindest von UIElement erben.
Weiterhin musst du in dieser Klasse UIElement.IsFocusable auf true setzten.
Dann wie gewohnt per UIElement.Focus() den Focus setzen.
Hallo Qwald,
mit weniger Aufwand wird es nicht gehen. Um Speicherplatz zu sparen (wobei das bei einem Array von 100 Bytes natürlich nicht nötig ist), könntest du auch jedes Element des Arrays eine Position nach oben verschieben und dann per Array.Resize die größe des Arrays um 1 verringern.
Original von Ayke
jop die bekomme ich nicht xD^^ hast du dir SilverLight auch runtergeladen ?
jupp. =)
dann haben wir es hier mit einem teminologischen konflikt zutun. unter wpf gibt es keine "forms" mehr, da es keine Basisklasse "Form" für Dialoge mehr gibt, sondern eine "Window" klasse.
@talla: du hast natürlich recht, Blend ist ein Designer für WPF. Ich hatte angenommen, Blend 2 wäre speziell für Silverlight ausgelegt.
Dummerweise bekomme ich Exceptions, wenn ich versuche eine Silverlight Anwendung mit Blend 2 zu erstellen, obwohl ich alles nötige installiert habe.
Habt ihr da bessere Erfahrungen gemacht?
Gruß
Original von Ayke
Ich möchte die Windows Form selber zeichnen. Leider habe ich bis jetzt nur wieder die
hallo,
Expression Blend 2 ist ein Designer für Silverlight (vormals WPF/E) Applikationen. Windows Forms Anwendung kannst du damit nicht erstellen.
hallo,
du musst schon auf den jeweiligen typ des attributs casten um die daten ausgeben zu können.
Assembly assy1 = Assembly.GetCallingAssembly();
object[] o = assy1.GetCustomAttributes(false);
foreach (Attribute att in o)
{
if (att is AssemblyDescriptionAttribute)
{
Console.WriteLine(((AssemblyDescriptionAttribute)att).Description);
}
}
hallo Haggy,
wenn du sehr tief in die Materie rund um IL und CLR eintauchen willst/musst, kann ich dir die Bücher von Serge Lidin sehr empfehlen.
wenn du "nur" informationen zur Reflection API brauchst, würde ich auch ehr sagen, dass Fachartikel im Internet, Dokumentation usw. die bessere Wahl sind.
hallo eclere,
warum sollte das nicht gehen?
hallo webstarg,
das ist nicht möglich und widerspricht den prinzipien der vererbung.
hallo pro,
ich wollte dein programm ausprobieren und bekomme folgende exception:
[2007-05-06 11:32:04,671] FATAL Simply.Core.Program - Exception : Ein Teil des Pfades c:\windows\temp\version.xml konnte nicht gefunden werden.
gut, dass ich windows nicht auf c: habe... =)
würde an deiner stelle die daten im ordner für anwendungsdateien speichern.
ok, dann nehme ich das mit der sinnhaftigkeit zurück und sage, dass solche funktionalität trotzdem sehr leicht selbst bereitgestellt werden kann.
ja, du musst auch einen verweis auf das assembly system.web.dll hinzufügen. (in VS unter "project->add reference")
vielleicht ist es aber sinnvoller sich schnell eine klasse zu schreiben die sowas - zumindest für die gängigen umlaute - selbst kann. für andere zeichen kannst du entities auch in der form &[UNICODE ZeichenNr.]; darstellen.
hallo,
stichworte sind MS Orcas bzw. der XAML Designer Cider. Auch sehr empfehlenswert ist Expression Blend, was als Release Candidate zum download bereit steht.
vor allem würde ich dir zur einarbeitung ein gutes buch empfehlen, z.b.
charles petzold - application = markup + code.
gruß
hi,
passt jetzt wahrscheinlich nicht direkt zu deinem problem, da du die exe nicht neu kompilieren willst. jedenfalls hab ich neulich einen sehr interessanten artikel in der aktuellen dotnetPro gelesen, in der ein automatisches logging per AOP (spring.Net) erstellt wurde. durch den aspektorientierten ansatz müssen quasi keine änderungen am vorhandenen code gemacht werden, es wird nur ein neuer "aspekt" eingefügt.
gruß
beim löschen von elementen aus collections empfiehlt es sich, den zähler der for-schleife runterzuzählen. dann werden auch keine elemente übersprungen.
ja, am einfachsten mit 2 schleifen und ArrayList.Remove().
dann hilft wohl nur selber zu parsen.
mit deinem code löscht du aber alle .txt dateien in dem ordner.
die wildcard kann wie gesagt der GetFiles() Methode übergeben werden:
string[] arrAllFiles = Directory.GetFiles(Application.StartupPath + @"\Temp", *.txt");
foreach (string str in arrAllFiles)
{
File.Delete(str);
}
ob das allerdings schneller ist bezweifle ich. =)
hallo,
wann kommt denn die letztgenannte meldung? wenn sie nur im xaml designer auftaucht kannst du sie ignorieren, da dieser noch in der ctp phase ist.
hallo,
File.Exists ermittelt nur, ob eine Datei existiert oder nicht.
Nimm Directory.GetFiles() um mit wildcards zu suchen.
hallo anwesend,
heist eig. nur das du das static weggeben sollst Augenzwinkern
nein, das heisst, dass extension methods in einer statischen, aber nicht-generischen klasse implementiert werden müssen.
hallo NonSense,
deshalb vermute ich mal, dass deine klasse nicht als static deklariert worden ist, sondern nur die methode. beides muss aber der fall sein.
gruß
zum abfangen musst du einen systemweiten hook setzen. siehe codeproject.com für entsprechende beispiele
hallo,
wie lautet denn die exception?
ich tippe mal, dass du das grid nicht von seinem parent trennst, bevor du es dem neuen hinzufügst.
also sowas wie
Grid pgGrid=(Grid)pg.Content;
pg.Content = null;
würd mich mal interessieren warum es zu dieser exception kommt. mit meiner "TestKlasse" klappt es ohne probleme.
Type type = typeof(TestKlasse);
Type propertyType = type.GetProperty("Datum").PropertyType;
Type genericArgument = null;
if (typeof(Nullable<>) == propertyType.GetGenericTypeDefinition())
{
genericArgument = propertyType.GetGenericArguments()[0];
if (typeof(DateTime).IsAssignableFrom(genericArgument))
{
//generisches Argument ist DateTime...
}
}
sowas in der art gab es neulich schon:
Mal ne Verständnissfrage zu get;set;
das was du als Attribut bezeichnest nennt man eigentlich Property. Attribute sind Metadaten, die für Klassen oder Methoden angegeben werden können.