¿Por qué WP7 Listpicker tiene diferentes márgenes y altura a TextBox?
-
29-10-2019 - |
Pregunta
Tengo una página en mi aplicación WP7 que consiste en un TextBox
al lado de un ListPicker
. En sus modos predeterminados, no se alinean correctamente; la ListPicker
tiene un relleno diferente al TextBox
, y su altura también es diferente.
<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>
Ajustando manualmente el ListPicker
La plantilla para encajar correctamente aquí es difícil y propensa a errores. Por ejemplo, cuando se ajusta su altura, el título (es decir, el texto del elemento seleccionado) ya no está en el centro del componente.
Actualmente, mi aplicación está fallando la revisión de la aplicación MS porque los componentes no tienen la misma altura.
¿Hay una manera fácil de configurar el toolkit:ListPicker
tener la misma apariencia que un TextBox
?
Solución
La solución más simple será tomar una copia del estilo predeterminado y ajustar que usar la mezcla para ser exactamente cómo desea que se vea. Este voluntad Tome un poco de prueba y error para resolver.
Luego puede usar las reglas de estilo implícitas para aplicarlo a todos ListPickers
sin tener que establecer explícitamente el estilo en cada instancia:
<Style x:Key="MyListPickerStyle
TargetType="toolkit:ListPicker>
.... your tweaks here
</Style>
<Style TargetType="toolkit:ListPicker"
BasedOn="{StaticResource MyListPickerStyle}" />
Puede ser más fácil ajustar el TextBox
Estilo, por supuesto :)