Entwickler-Ecke
WPF / Silverlight - [WPF] Neben meinem Text sind komische Kästchen aber wieso
MCPC10 - Sa 09.07.16 19:20
Titel: [WPF] Neben meinem Text sind komische Kästchen aber wieso
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 :) .
Th69 - 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 - Sa 09.07.16 21:37
Die Klasse:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| internal Joystick[] GetDevice() { var devices = new List<Joystick>();
foreach (var device in directInput.GetDevices(DeviceClass.GameControl, DeviceEnumerationFlags.AttachedOnly)) { try { Joystick joy = new Joystick(directInput, device.InstanceGuid); devices.Add(joy); } catch (Exception) { return null; } }
return devices.ToArray(); } |
Die Init der Combobox:
C#-Quelltext
1: 2: 3: 4:
| internal void InitCombobox(){ comboBoxLenkrad.ItemsSource = GetDevice(); comboBoxJoystick.DisplayMemberPath = "Properties.ProductName"; } |
Der Aufruf:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| private void comboBoxJoystick_SelectionChanged(object sender, SelectionChangedEventArgs e) { Joystick joy = (Joystick) comboBoxJoystick.SelectedItem;
joy.Acquire(); JoystickState joyState = new JoystickState(); joy.GetCurrentState(ref joyState); MessageBox.Show(joyState.X.ToString()); } |
Danke für deine schnelle Antwort :)
Moderiert von Th69: Full-Quote entfernt.
MCPC10 - 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 - So 10.07.16 14:31
Hier ein kurzes Tutorial:
Debugging [
http://www.dotnetperls.com/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.
MCPC10 - So 10.07.16 17:01
So damit hat es jetzt funktioniert :)
Musste das mal verstehen:
Compiler Error CS1729 [
https://msdn.microsoft.com/de-de/library/bb384029.aspx]
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 - 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 - Di 12.07.16 13:52
Vielen Dank für deine Hilfe :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!