Почему WP7 ListPicker имеет разные поля и высоту по сравнению с TextBox - PullRequest
3 голосов
/ 17 января 2012

У меня есть страница в моем приложении WP7, содержащая TextBox рядом с ListPicker. В режимах по умолчанию они не выстраиваются должным образом; ListPicker имеет отступ, отличный от TextBox, и его высота также отличается.

Image to show ListPicker problem

<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>

Ручная настройка шаблона ListPicker для правильного размещения здесь сложна и подвержена ошибкам. Например, когда его высота отрегулирована, заголовок (то есть текст выбранного элемента) больше не находится в центре компонента.

Мое приложение в настоящее время не проходит проверку приложения MS, поскольку компоненты не имеют одинаковую высоту.

Есть ли для меня простой способ установить toolkit:ListPicker таким же образом, как TextBox?

1 Ответ

1 голос
/ 17 января 2012

Самое простое решение - взять копию стиля по умолчанию и настроить его, используя Blend, чтобы он точно выглядел. Это потребует небольшой проб и ошибок, чтобы разобраться.

Затем вы можете использовать неявные правила стилевого оформления, чтобы применить их ко всем ListPickers без необходимости явно устанавливать стиль для каждого экземпляра:

<Style x:Key="MyListPickerStyle
       TargetType="toolkit:ListPicker>
    .... your tweaks here
</Style>

<Style TargetType="toolkit:ListPicker"
       BasedOn="{StaticResource MyListPickerStyle}" />

Может быть проще настроить стиль TextBox, конечно:)

...