Perché WP7 ListPicker ha margini e altezza diversi da textBox
-
29-10-2019 - |
Domanda
Ho una pagina nella mia app WP7 composta da a TextBox
accanto a ListPicker
. Nelle loro modalità predefinite, non si allineano correttamente; il ListPicker
ha un'imbottitura diversa per TextBox
, e anche la sua altezza è diversa.
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<StackPanel Orientation="Horizontal">
<TextBox HorizontalAlignment="Left" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top"/>
<toolkit:ListPicker Width="170" ItemsSource="{Binding l}" Style="{StaticResource ListPickerStyle1}" VerticalAlignment="Top"/>
</StackPanel>
</Grid>
Modificando manualmente il ListPicker
Il modello per adattarsi correttamente qui è difficile ed errori. Ad esempio, quando la sua altezza è regolata, la didascalia (cioè il testo dell'elemento selezionato) non è più al centro del componente.
La mia app sta attualmente fallendo la revisione dell'app MS perché i componenti non hanno la stessa altezza.
C'è un modo semplice per me per impostare il toolkit:ListPicker
avere la stessa apparizione di a TextBox
?
Soluzione
La soluzione più semplice sarà quella di prendere una copia dello stile predefinito e modificare che usando la miscela è esattamente come vuoi che sembri. Questo volere Prendi una piccola prova ed errore per risolvere.
È quindi possibile utilizzare le regole di styling implicite per applicarlo a tutti ListPickers
Senza dover impostare esplicitamente lo stile su ogni istanza:
<Style x:Key="MyListPickerStyle
TargetType="toolkit:ListPicker>
.... your tweaks here
</Style>
<Style TargetType="toolkit:ListPicker"
BasedOn="{StaticResource MyListPickerStyle}" />
Potrebbe essere più facile modificare il TextBox
Stile ovviamente :)