Autor |
Beitrag |
MCPC10
Beiträge: 35
Win 10, Win Server 2016
C# (VS 2015, VS2017, VS2019), Assembler (Atmel Studio 7.0)
|
Verfasst: Sa 09.07.16 19:20
Guten Tag erstmal ,
Ich habe ein Problem in WPF, dass wenn ich SharpDX.DirectInput Nutze und den Namen in der Combobox anzeigen möchte, dass diese zwar den Namen anzeigt, aber auch Kästchen dahinter macht (siehe Anhang). Ich verzweifle schon mehrere Tage an diesem Problem . Ich hoffe sehr das ihr mir helfen könnten. Wenn ihr weitere Infos benötigt, müsst ihr es nur sagen .
Einloggen, um Attachments anzusehen!
|
|
Th69
Beiträge: 4782
Erhaltene Danke: 1055
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Sa 09.07.16 19:46
Hallo,
zeig' mal den Code mit dem du die TextBox füllst (ich tippe darauf, daß du einen aus C oder C++ nullbasierten Text hast und diesen nicht korrekt nach string konvertierst).
|
|
MCPC10
Beiträge: 35
Win 10, Win Server 2016
C# (VS 2015, VS2017, VS2019), Assembler (Atmel Studio 7.0)
|
Verfasst: Sa 09.07.16 21:37
|
|
Th69
Beiträge: 4782
Erhaltene Danke: 1055
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: So 10.07.16 10:24
Laß dir mal in der GetDevice(s) Methode den Namen ausgeben:
C#-Quelltext 1:
| string name = joy.Properties.ProductName; |
(entweder per Debugger anschauen oder aber als MessageBox o.ä.).
Wenn der dort auch schon falsch ist, dann sehe ich dies als Fehler in der SharpDX-Implementierung: SharpDX /Source/SharpDX.DirectInput/DeviceProperties.cs
Hast du denn die neueste SharpDX-Version?
Wenn du das selber korrigieren möchtest (da du ja - korrekterweise - Data-Binding benutzt), müßtest du eine eigene Klasse erstellen und von Joystick ableiten und dort dann eine eigene Eigenschaft erstellen, welche die Stellen ab dem ersten Nullzeichen entfernt, s. z.B. C# - Trimming string from first null terminator and onwards.
|
|
MCPC10
Beiträge: 35
Win 10, Win Server 2016
C# (VS 2015, VS2017, VS2019), Assembler (Atmel Studio 7.0)
|
Verfasst: So 10.07.16 13:37
- Also ich habe es jetzt mit einer MessageBox getestet und der Name wurde Korrekt dargestellt. (Wie macht man sowas mit dem Debugger ?)
- Ja ich habe die neuste SharpDX Version
- Ähh, wie leitet man KLassen ab und fügt sowas hinzu, denn ich bin recht neu in C# und kenne so was noch nicht
Nochmal Danke für die schnelle Antwort
|
|
Th69
Beiträge: 4782
Erhaltene Danke: 1055
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: So 10.07.16 14:31
Hier ein kurzes Tutorial: Debugging (Stichwörter: breakpoint, watch (locals)).
Vllt. unterdrückt aber auch die MessageBox diese Zeichen, aber der Debugger sollte dir den kompletten String anzeigen (einfach 'breakpoint' setzen und wenn das Programm dann dort anhält, kannst du mit der Maus über den Variablennamen gehen und es wird der Inhalt als Tooltip angezeigt).
Ableiten ginge z.B. so
C#-Quelltext 1: 2: 3: 4:
| public class MyJoystick : Joystick { } |
Du müßtest dann in deiner GetDevices-Methode überall dann MyJoystick benutzen und bei Binden an die ComboBox dann den Namen deiner Eigenschaft hinsetzen.
Für diesen Beitrag haben gedankt: MCPC10
|
|
MCPC10
Beiträge: 35
Win 10, Win Server 2016
C# (VS 2015, VS2017, VS2019), Assembler (Atmel Studio 7.0)
|
Verfasst: So 10.07.16 17:01
So damit hat es jetzt funktioniert
Musste das mal verstehen: Compiler Error CS1729
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| public class MyJoystick : Joystick { private string TrimFromZero(string input) { int index = input.IndexOf('\0'); if (index < 0) return input;
return input.Substring(0, index); }
public override string ToString() { return TrimFromZero(Properties.ProductName); }
public MyJoystick(DirectInput directInput, Guid deviceGuid) : base(directInput, deviceGuid) { } } |
Und Danke das du mir geholfen hast
Wenn mein Code "schlecht" ist, dann ruhig sagen. Ich will meine Fehler gerne Wissen
Moderiert von Th69: URL-Titel hinzugefügt.
|
|
Th69
Beiträge: 4782
Erhaltene Danke: 1055
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Mo 11.07.16 13:46
Hallo,
dein Code ist ersteinmal aus meiner Sicht so in Ordnung.
Der Übersicht halber werden aber die Konstruktoren meist als erstes in der Klasse definiert.
Wenn dies damit für dich erledigt ist, wäre es schön, wenn du den Status hier auf "Frage beantwortet" setzen würdest (einfach deinen Eingangsbeitrag editieren).
|
|
MCPC10
Beiträge: 35
Win 10, Win Server 2016
C# (VS 2015, VS2017, VS2019), Assembler (Atmel Studio 7.0)
|
Verfasst: Di 12.07.16 13:52
Vielen Dank für deine Hilfe
|
|