Laden...

Forenbeiträge von ProGamer Ingesamt 660 Beiträge

29.01.2014 - 10:56 Uhr

[...] da ShowDialog ein bool? zurückliefert [...] Deswegen muss ich extra auf "== true" checken

Musst du nicht. Das kannst du ganz geschmeidig mit


var dialogResult = dialog.ShowDialog();
if(dialogResult.HasValue && dialogResult)
{
    //...
}

lösen.

28.01.2014 - 08:36 Uhr

Hallo,

ich weiss nicht ob dir das weiterhilft, bzw. es überhaupt das richtige tool dafür ist, aber kannst es ja mal mit Log4Net probieren.

27.01.2014 - 14:55 Uhr

Hallo,

vllt solltest du dir auch mal das WrapPanel ansehen.

20.01.2014 - 15:25 Uhr

Hahaha, was sagt man dazu,

ich hatte genau das selbe problem und hier ist meine Lösung:

public class ObservableCollectionExtended<T> : ObservableCollection<T> where T : INotifyPropertyChanged
	{
		public ObservableCollectionExtended(){}

		public ObservableCollectionExtended( List<T> list )
			: base( list ){}

		public ObservableCollectionExtended( IEnumerable<T> collection )
			: base( collection ){}

		public new event PropertyChangedEventHandler PropertyChanged
		{
			add { base.PropertyChanged += value; }
			remove { base.PropertyChanged -= value; }
		}

	}
16.01.2014 - 08:34 Uhr

Morgen,

ich bin mir jetzt nicht sicher, aber das Beispiel von Prism sieht so aus als hätte es eine Aktien-Simulation.
Ist zwar WPF aber die entsprechende Code-Stelle zu finden dürfte ja nicht schwer sein.

16.01.2014 - 08:30 Uhr

also,

dir wird unter "Geräte und Drucker" der Bondrucker aufgelistet?
kannst du von dort aus eine Testseite drucken?

Bietet der Hersteller eine API-Dokumentation für das gerät an?
Wenn du weisst wiedie API von dem ding ist, kannst du es auch ansteuern.

15.01.2014 - 11:47 Uhr

hmm, es spricht im grunde nichts dagegen WPF + MVVM mit Prism zu kombinieren.

15.01.2014 - 10:10 Uhr

hmm, vllt sollte ich mal als Stichwort Vererbung in den Raum werfen, sollte dann aber gut überlegt sein.

14.01.2014 - 16:08 Uhr

hmmm,

das ist je nach dem ob du MVVM einsetzt so eine sache, aber guck dir entweder mal [FAQ] Assistenten/Wizards: Mit Windows Forms eine Art Frameset einer Website nachbauen an,
oder aber setze dich mit Prism (hat nichts mit NSA zu tun;-)) auseinander

14.01.2014 - 14:10 Uhr

hmmm, sehr nahe an den Grundlagen, aber manchmal sieht man den Wald vor lauter bäumen nicht 😉

Der Fehler ist, dass dein Control nicht "UserControl" heisst, sondern "LoginView".
Wenn das Control sich in der selben Assembly befindet kannst du folgendes machen:


...
xmlns:Login="<NameSpace>"
...

<Grid>
<Login:LoginView x:Name="MyControl" />
</Grid>

14.01.2014 - 13:47 Uhr

Hallo,

wenn du die Daten aus einer Datenbank ziehst, dann kannst du in der Query auch das "Order By" angeben.

10.01.2014 - 08:44 Uhr

hmm, ich kann dir nicht sagen ob das überhaup machbar ist, aber du kannst mal versuchen in
deinem Soundkarten-Treiber mit dem Stereo-Mix zu spielen. Wenn der eingeschaltet ist, sollte dein
Soundoutput als Input erkannt werden (Der Output bleibt trotzdem erhalten (du hörst noch was )).
Also im Prinzip baust du dann eine Interne Schleife.

10.01.2014 - 08:24 Uhr

Morgen,

Die frage ist doch: Musst du Access verwenden?
wenn nicht dann verwende doch SQLite oder ähnliches

09.01.2014 - 14:08 Uhr

Hallo,

wenn das lokal immer noch nicht geht, dann guckst du hier:
Windows 7: How to display .chm content

27.12.2013 - 11:07 Uhr

Hallo,

Es gibt 2 Möglichkeiten:

  1. du Arbeitest mit der WinAPI und reagierst auf die WindowMessage WM_POWERBROADCAST

oder

  1. du schreibst dir einen Dienst, der die Methoden OnPause() und OnResume() der Basisklasse überschreibt und reagierst entsprechend darauf
23.12.2013 - 14:57 Uhr

Hallo,

also wenn es dir um das SelectionChanged-Event geht dann kannst du im Setter der SelectedItem-Property darauf reagieren.

ansonsten gibt es hier im Forum eine EventToCommand-Klasse mit der man Commands von Events feuern lassen kann.

11.12.2013 - 12:34 Uhr

Hallo,

ja, z. B. bei Dependency Injections (Unity als Beispiel),
oder aber auch bei der Messenger-Klasse aus dem MVVMLight-Framework wird WeakReference verwendet.

05.12.2013 - 08:27 Uhr

Morgen,

unconnected meint mit "Stop Methode" bestimmt SeviceBase.Stop().

glaube ich zumindest XD

04.12.2013 - 08:50 Uhr

Morgen,

mal ne ganz einfache und dumme frage: Hat die Anwendung, der du die Simulierten Tasten übergeben möchtest, den Fokus?

03.12.2013 - 12:19 Uhr

hallo,

ich werde gleich bestimmt geschlagen, aber lasse doch klasse 2 von klasse 1 erben und klasse 3 von klasse 2

also folgendes:

public class Klasse1 {}

public class Klasse2 : Klasse1 {}

public class Klasse3 : Klasse2 {}
29.11.2013 - 13:46 Uhr

Hallo,

also so ganz spontan würde ich sagen EventToCommand (hier im Forum einfach mal die Suche bemühen 😉)

Aber der ein oder andere hier im Forum hat bestimmt ne bessere Idee parat.

28.11.2013 - 16:26 Uhr

wenn du mal mit den Informationen die in dem Artikel sind, etwas weiter gesucht hättest, wärst du
bestimmt mal auf ValidationStep gestossen.
Mit RawProposedValue kannst du sogar den Wert prüfen, bevor irgendeine art von Konvertierung stattfindet.
Somit würde dein Wert zuerst die ValidationRule durchlaufen und du könntest ein False/True als Result zurückgeben.

28.11.2013 - 14:32 Uhr

Hallo,

vllt bietet dir dieser Artikel von CodeProject etwas mehr Informationen:

Validation in Windows Presentation Foundation

28.11.2013 - 11:47 Uhr

Hallo,

das kannst du mit SetParent lösen.

Hier mal ein Beispiel: (ist vb6, die API ist die gleiche)

Fremde Fenster in eigenes Fenster einbinden

28.11.2013 - 11:29 Uhr

Hallo,

vllt hilft dir ja der Beitrag und dessen Antwort weiter

Das Programmier-Spiel: nette Übungsaufgaben für zwischendurch

26.11.2013 - 15:27 Uhr

Hallo,

Du kannst Bei den einzelnen Controls (also die von Control erben) folgendes sagen:


<Grid><Grid.Resources>
<Style x:Key="FontSize16" TargetType="{x:Type Control}" >
			<Setter Property="FontSize" Value="16"/>
		</Style>
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource FontSize16}" />
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource FontSize16}" />
</Grid></Grid.Resources>

So musst du nicht z.b. bei jeder StatusBar den Style angeben.

Ich stand letztens auch vor dem selben Problem, fand aber heraus dass man Control an sich nicht als
targetType verwenden kann, jedenfalls führt das nicht direkt zum gewollten ergebnis.

25.11.2013 - 10:24 Uhr

Hallo,

vllt. wäre die Messenger-Klasse aus dem MVVMLight Framwork was für dich (Die Messenger-Komponente lässt sich auch als Stand-Alone verwenden)

22.11.2013 - 11:59 Uhr

Hallo,

Also das Model kann man eigentlich nochmal etwas weiter unterteilen, aber um es einfach zu sagen
kümmert sich das Model nur darum, die Daten aus der Datenquelle (Datenbank, XML, etc.) zu holen
oder in diese zu schreiben.

22.11.2013 - 08:32 Uhr

Morgen,

...dann irgendwie zu erkennen welche Kästen angekreuzt wurden.

Also wenn wirklich nur angekreuzt wird, und kein Text per Hand geschrieben wird, und das Dokument immer im gleichen Format (bsp. Hochformat, 200 DPI, GreyScale, etc.) gescannt wird, dann könntest du (anhand eines zuvor leeren eingescannten Dokumentes) ermitteln wo sich die kästen befinden und im eingescannten Bild direkt zu den Pixeln navigieren. Wenn dort dann ein anderer Farbwert ist als im leeren gescannten Dokument, ist dort etwas vorhanden.

Keine Ahnung wie aufwändig das ist oder überhaupt machbar ist.

18.11.2013 - 08:33 Uhr

nur als Hinweis: bei Wikipedia steht zu ISO-8859-1:

Windows-1252 Westeuropäisch (Western European) ist eine 8-Bit-Zeichenkodierung des Microsoft-Betriebssystems Windows, die die meisten westeuropäischen Sprachen unterstützt. Sie baut auf ISO 8859-1 und ISO 8859-15 auf.

13.11.2013 - 13:20 Uhr

hallo,

Also, wenn es einfach sein soll, dann versuch doch einfach mal mit dem VLC-Player auf die URI zuzugreifen.

Und ein Download findet immer statt. Irgendwo müssen die Daten ja gecachet werden.

08.11.2013 - 16:07 Uhr

Dann mach aus der MemberExpression ein ConstantExpression

EDIT: ok vergiss es, ist doch nicht so wie erwartet.

08.11.2013 - 12:08 Uhr

Hallo,

hier ist mal was kürzeres:


		public static string GetPropertyName<T>( Expression<Func<T>> expression )
		{
			return ((MemberExpression)expression.Body).Member.Name;
		}

verwendung:

var test = GetPropertyName( ()=> WAHR );
07.11.2013 - 08:25 Uhr

Hallo,

du kannst auch mehr als nur ein Subfolder in dem probing-Element angeben

Specifies subdirectories of the application's base directory that might contain assemblies. Delimit each subdirectory with a semicolon.

06.11.2013 - 08:50 Uhr

Korrigiert mich bitte wenn ich falsch liege, aber muss man für Subfolder nicht das "probing" angeben?
Weil laut Assembly Searching Sequence würde nur dann automatisch in Subfoldern gesucht werden, wenn der Ordner genauso wie die Assembly heisst.

Hier mal ein zitat von der Seite:

In a subfolder in the application's folder. The subfolder must have the same name as the assembly.

05.11.2013 - 11:30 Uhr

Nur die Nachricht?

hast du schon gesagt.

Code, der die Nachricht dekodiert? Oder den Ursprungscode, der das Bild erzeugt?

Wenns geht beides, ansonsten poste ich meinen Code 😉

hmm, war wohl zu einfach was? XD
wie auch immer du bist dran.

EDIT:

Da leider noch kein Code gepostet wurde, werde ich natürlich meinen nicht vorenthalten.
(Die 16 Zeilen Code bezogen sich auf das auslesen (der gesamte Code ist nicht Optimiert!))


	public class Program
	{
		private const string Path = @"C:\Temp\SecretMessage.jpg";

		static void Main( string[] args )
		{
			CreateBitmap(Path, 32, new char[] { 'H', 'E', 'L', 'L', 'O', ' ', 'W', 'O', 'R', 'L', 'D' });

			Console.WriteLine(ReadBitmap(Path, 32));

			Console.ReadKey();
		}


		private static void CreateBitmap( string path, int pixelHeightAndWidth, char[] message )
		{
			var tmpBitmapWidth = message.Length * pixelHeightAndWidth;
			var tmpBitmapHeight = pixelHeightAndWidth;

			using ( var bmp = new Bitmap( tmpBitmapWidth, tmpBitmapHeight ) )
			{
				var tmpOffsetWidth = 0;
				foreach ( var t in message )
				{
					for ( var x = tmpOffsetWidth; x < ( tmpOffsetWidth + pixelHeightAndWidth ); x++ )
					{
						for ( var y = 0; y < tmpBitmapHeight; y++ )
						{
							var tmpColor = Color.FromArgb( 255, t, t, t );
							bmp.SetPixel( x, y, tmpColor );
						}

					}
					tmpOffsetWidth += pixelHeightAndWidth;
				}
				bmp.Save( path );
			}
		}

		private static string ReadBitmap( string path, int pixelHeightAndWidth )
		{
			var tmpRes = new StringBuilder();

			using (var FS = new FileStream(path, FileMode.Open,FileAccess.Read,FileShare.Read))
			{
				using ( var bmp = new Bitmap( FS ) )
				{
					for ( int x = 0; x < bmp.Width; x += pixelHeightAndWidth )
					{
						tmpRes.Append((char)bmp.GetPixel(x, 1).R);
					}
				}
			}

			return tmpRes.ToString();
		}
	}

05.11.2013 - 10:18 Uhr

Hallo zusammen

Im Anhang befindet sich eine geheime Nachricht. Wie lautet sie?

Als Info noch:*Die grafik ist selbsterstellt (Per Code natürlich) *Mein Code ist 16 zeilen Lang (ohne Optimierungen) *Die Grafik wurde nicht in Schwarz/Weiss bzw. Graustufen konvertiert

Wenn noch Infos fehlen oder etwas unklar ist, einfach melden.

Viel Spass!

04.11.2013 - 09:25 Uhr

hmm, Wird der Converter denn bei jeder Änderung der "price"-Property durchlaufen?

04.11.2013 - 09:12 Uhr

mache doch das was herbivore vorgeschlagen hat.
Pack die ganzen buttons in ein Panel oder GroupBox (oder Grid wenn es WPF ist) und sage in deinem
Code


GroupBox1.Enabled = false;

wenn eines der Buttons gedrückt wird. dadurch werden alles Controls innerhalb der GroupBox auf
einen Schlag disabled (natürlich funktioniert das auch umgekehrt).

du müsstest dann nur noch die entsprechenden Events abonnieren und die Aktionen durchführen.

30.10.2013 - 13:37 Uhr

hallo,

Wenn ich dich Richtig verstanden habe, dann ist DependencyProperty das Stichwort.

29.10.2013 - 11:28 Uhr

einfach nur am rande erwähnt:
in der DotNetPro gab es einen Artikel über Dynamische Programmierung (im Grunde Algo-Optimierungen).

DotNetPro 09/2013

aber wie gfoidl und herbivore schon sagten: Erst optmieren wenns nötig ist.

25.10.2013 - 13:43 Uhr

ich meine, du kannst ein neues Projekt anlegen und dann sagen Hinzufügen ->vorhandenes Projekt und dann die csproj datei auswählen.

ansonsten, (was ziemlich lästig wäre) neues projekt anlegen und jede cs-Datei einzeln hinzufügen.

was genau hast du zuletzt gemacht? einen Verweis hinzugefügt?

25.10.2013 - 13:15 Uhr

Hallo,

die .suo-Dateien sind versteckt. In den Ordner-Eigenschaften von Windows kannst du diese einblenden lassen.

Ansonsten kannst du ja die im Unterordner die .csproj-Datei aufrufen

22.10.2013 - 08:36 Uhr

Morgen,

wieso erstellst du das Binding nicht im XAML?
wieso Codebehind? O.o

was die Fehler angeht: Deine werte werden doch angezeigt oder?
Du kannst diese verändern und die änderungen werden übernommen, richtig?
Wenn ja, dann gibts keine Fehler.
Und wie gesagt, die trägheit könnte deswegen sein, weil die Spalten automatisch erzeugt werden.

ein einfaches Beispiel würde so aussehen:

<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding MyCollection}">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Name" Binding="{Binding Path=Name}"/>
        <DataGridTextColumn Header="Alter" Binding="{Binding Path=Age}"/>
    </DataGrid.Columns>
</DataGrid>
21.10.2013 - 08:41 Uhr

Hallo,

ohne mir jetzt das projekt angesehen zu haben, versuch mal "AutoGenerateColumns" auf False zu
setzen und die Columns selbst zu definieren. AutoGenerateColumns braucht schon etwas an Zeit
für die Generierung.

17.10.2013 - 10:38 Uhr

uhm, wenn ich dich richtig verstehe dann so:

public class GUIDDictionary<TElementType> : Dictionary<Guid, TElementType>, ISomeInterface where TElementType : IGuidIdentifiedObject {
    ...
}