Ergebnis 1 bis 7 von 7
-
- 05.08.2011, 20:08
- #1
Hi,
ich habe schon relativ viel im Internet gesucht und wollte auch mal im Entwicklerforum von Microsoft nachfragen, aber vielleicht hat hier jemand eine schnelle Lösung.
Mein Problem ist, dass ich eine Listbox habe, die den kompletten Bildschirm füllt (bis auf eine Textbox ganz oben).
Je nachdem was der User eintippt, wird die Listbox befüllt. (So wie autocomplete)
Das Problem ist, dass wenn der User dann etwas eingibt, dass die untersten Elemente nicht angezeigt werden, weil sie hinter der Tastatur versteckt sind.
Ich habe bisher keine Lösung gefunden, die Größe der Listbox so zu beschränken, dass sie sich daran anpasst, ob die Tastatur offen ist oder nicht.
Hier mal ein einfacherer Beispielcode:
Code:<Grid x:Name="LayoutRoot" Background="Transparent"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <TextBox Grid.Row="0"/> <ListBox Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" > <ListBoxItem Content="Item1"/> <ListBoxItem Content="Item2"/> <ListBoxItem Content="Item3"/> <ListBoxItem Content="Item4"/> <ListBoxItem Content="Item5"/> <ListBoxItem Content="Item6"/> <ListBoxItem Content="Item7"/> <ListBoxItem Content="Item8"/> <ListBoxItem Content="Item9"/> <ListBoxItem Content="Item10"/> <ListBoxItem Content="Item11"/> <ListBoxItem Content="Item12"/> <ListBoxItem Content="Item13"/> <ListBoxItem Content="Item14"/> <ListBoxItem Content="Item15"/> <ListBoxItem Content="Item16"/> <ListBoxItem Content="Item17"/> <ListBoxItem Content="Item18"/> <ListBoxItem Content="Item19"/> <ListBoxItem Content="Item20"/> <ListBoxItem Content="Item21"/> <ListBoxItem Content="Item22"/> <ListBoxItem Content="Item23"/> <ListBoxItem Content="Item24"/> <ListBoxItem Content="Item25"/> <ListBoxItem Content="Item26"/> <ListBoxItem Content="Item27"/> </ListBox> </Grid>
-
Fühle mich heimisch
- 05.08.2011, 21:06
- #2
Ich glaube es gibt bei einer Textbox die events Manipulation started und ended. Also würde ich sobald das zweite Event aufgerufen wird, die Tastatur "einzuschieben" oder wenn das erste event aufgerufen wird die grösse zu ändern.
Jedoch weiss ich nicht ob dies klappt, da ich noch nie mit diesen Events gearbeited habe
-
- 05.08.2011, 21:16
- #3
Die Events sind dafür da um Interaktionen mit dem User zu melden. (Also antippen)
Diese werden soweit ich weiß nicht aufgerufen beim Tastaturgebraucht.
Aber das ist auch nicht wirklich das Problem. Theoretisch könnte man das mit dem Focus der Textbox ausfündig machen, ob die Tastatur offen ist oder nicht und dann die Höhe anpassen.
Aber ich hatte gehofft, dass es vielleicht einfach einen Layout-Trick gibt, mit dem man das hervorrufen kann.
Wenn man das hardcoded, müsste man noch so viel anderes checken. Erstmal natürlich, ob Softwaretastatur oder Hardwaretastatur (weiß gar nicht ob das geht), dann wie die Seite orientiert ist. (Landscape oder nicht)
Und schlussendlich wäre dann der Code auch nicht zukunftssicher, wenn man Phones mit größerer Auflösung rauskommen müsste man wieder irgendwelche Zahlen ändern.
Ich meine, die Listboxen werden ja alle automatisch auf die Größe der Seite beschränkt mit den richtigen properties, sodass sie auch beim drehen des Handys auf das Display begrenzt sind.
Ich hatte gehofft, dass es so etwas auch für die Tastatur geben könnte.
-
Robby Light Gast
Was passiert, wenn du (ich weiß, dass es unschön ist) dem letzten ListboxItem so ca 200 Margin/Padding nach unten gibst?
Dann müsste es ja irgendwann hinter der Tastatur hervorkommen.
-
- 25.08.2011, 16:40
- #5
Hmm, das wäre eine Idee die ich ausprobieren könnte. Muss ich zwar ein bisschen unschön rum programmieren (da an ObservableCollection gebunden), aber das könnte tatsächlich funktionieren.
-
Robby Light Gast
So viel ist das doch gar nicht.
Ich würde einfach
Code:((Object)ObservableCollection.Last()).Padding = new Thickness(0, 0, 0, 350);
-
- 29.08.2011, 17:14
- #7
Das werde ich mal ausprobieren, aber ich glaube mit Mango wird das nicht mehr nötig sein.
Habe gestern das hier gefunden:
DeviceStatus Api:
http://msdn.microsoft.com/en-us/libr...(v=VS.92).aspx
Hat unter anderem entsprechende Events die einem sagen, wenn die Tastatur geöffnet wurde, sowie ein Propertie in dem der Status gespeichert ist.
Ich werde mal schauen, in wie fern sich beide Lösungen implementieren lassen und was die bessere ist.
PS: Hast du meine Email-Antwort erhalten?
Ähnliche Themen
-
ListBox Binding Error mit Observable Collection
Von Robby Light im Forum Windows Phone 7 EntwicklungAntworten: 9Letzter Beitrag: 07.04.2011, 15:14 -
Problem mit Komfort-Tastatur
Von ErnieTSI im Forum Acer neoTouch S200Antworten: 2Letzter Beitrag: 30.06.2010, 20:00 -
Tastatur-Problem mit IGO8
Von bob der baumeister im Forum HTC HD2 ProgrammeAntworten: 2Letzter Beitrag: 09.01.2010, 21:45 -
SMS Eingabefeld ist hinter der Tastatur
Von Nebukatnedzar im Forum Touch HD CommunicationAntworten: 1Letzter Beitrag: 17.05.2009, 21:54 -
Problem mit QWERTZ Tastatur
Von Sol Justice Kyajin im Forum Touch HD InterfaceAntworten: 3Letzter Beitrag: 29.01.2009, 15:59
Pixel 10 Serie mit Problemen:...