суббота, 9 февраля 2013 г.

выпадающий список windows phone

<ListBox x:Name="DropDownList" VerticalAlignment="Top" MinHeight="250" SelectionMode="Single" SelectionChanged="DropDownList_SelectionChanged" Visibility="Collapsed" Padding="0">

<!-- Собственно выпадающий список -->

<TextBlock x:Name="SelectedValueTextBlock" Style="{StaticResource PhoneTextLargeStyle}" VerticalAlignment="Center" MouseLeftButtonDown="SelectedValueTextMouseLeftButtonDown" TextWrapping="Wrap" Margin="20,12,20,12" />

<!-- Здесь отображается текущий выбранный элемент -->

<Border VerticalAlignment="Center">

<!-- Здесь будут размещены анимации свертывания и развертывания списка -->

<Grid x:Name="LayoutRoot" Background="{StaticResource TransparentBrush}" Height="64">

<!-- Контейнер для содержимого контрола. Размер этого контейнера будет изменяться в зависимости от того, в каком состоянии находится контрол -->

<Border BorderBrush="{StaticResource PhoneForegroundBrush}" BorderThickness="{StaticResource PhoneDefaultBorderThickness}" Background="{StaticResource TransparentBrush}">

<!-- Внешняя граница контрола -->

Прежде всего добавим в проект новый UserControl и наберем примерно такую разметку:

2. Развернутое состояние - высота максимальна, отображается только ListBox.

1. Свернутое состояние - высота минимальна, отображается только TextBlock.

Всего допустимы 2 состояния:

Идея заключается в следующем: разместим в элементе управления TextBlock, содержащий выбранный элемент, и ListBox, содержащий список элементов. Высоту TextBlock'а сделаем примерно в 64 пикселя, высоту списка же -в несколько раз больше. В зависимости от того, в каком состоянии находится элемент управления, будем изменять высоту элемента в соответствии с высотой отображаемого содержимого.

Именно такая задача встала передо мной. В этом посте я расскажу, как именно я ее решил. Сразу предупреждаю - это отнюдь не финальная реализация, это скорее небольшой набросок, иллюстрация. Для ее завершения, как минимум, необходимо добавить стили, соответствующие системным и исправить некоторые мелкие проблемы.

Как известно, в CTP версии Windows Phone 7 Developer kit не поддерживаются некоторые элементы управления: ComboBox, Frame, многие элементы управления из Silverlight Toolkit. Таким образом, при необходимости использовать какие-либо из этих контролов возникает задача написания собственной версии специально для Windows Phone 7.

Четверг, 8. Апрель 2010

Простейший пример ComboBox для Silverlight for Windows Phone 7

Простейший пример ComboBox для Silverlight for Windows Phone 7

Комментариев нет:

Отправить комментарий