Pourquoi WP7 ListPicker a-t-il des marges et une hauteur différentes par rapport à TextBox?
-
29-10-2019 - |
Question
J'ai une page dans mon application WP7 composée d'un TextBox
à côté d'un ListPicker
.Dans leurs modes par défaut, ils ne s'alignent pas correctement;le ListPicker
a un remplissage différent du TextBox
, et sa hauteur est également différente.
<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>
Ajuster manuellement le modèle du ListPicker
pour qu'il s'intègre correctement ici est délicat et sujet aux erreurs.Par exemple, lorsque sa hauteur est ajustée, la légende (c'est-à-dire le texte de l'élément sélectionné) n'est plus au centre du composant.
Mon application échoue actuellement à l'examen de l'application MS car les composants ne sont pas tous de la même hauteur.
Y a-t-il un moyen facile pour moi de définir le toolkit:ListPicker
pour qu'il ait la même apparence qu'un TextBox
?
La solution
La solution la plus simple sera de prendre une copie du style par défaut et de l'ajuster en utilisant Blend pour qu'il ressemble exactement à ce que vous voulez.Cela nécessitera quelques essais et erreurs.
Vous pouvez ensuite utiliser les règles de style implicites pour l'appliquer à tous les ListPickers
sans avoir à définir explicitement le style sur chaque instance:
<Style x:Key="MyListPickerStyle
TargetType="toolkit:ListPicker>
.... your tweaks here
</Style>
<Style TargetType="toolkit:ListPicker"
BasedOn="{StaticResource MyListPickerStyle}" />
Il peut être plus facile de modifier le style TextBox
bien sûr :)