wp7 ListBox SelectionChanged Цвет текста

Поведение по умолчанию для ListBox, используемого в приложении WP7, заключается в том, что выбранный элемент выделяется в PhoneAccentBrush. Я обнаружил, что с помощью ListBox, когда я обрабатываю событие SelectionChanged (устанавливает свойство и закрывает всплывающее окно, содержащее ListBox), я никогда не вижу изменения цвета текста на PhoneAccentBrush, поэтому пользователь никогда не получает никакой обратной связи о том, что они выбрали правильный пункт. Есть ли способ обойти это и дать пользователю обратную связь (даже если это будет только на мгновение) о том, какой элемент они выбрали.


person daveywc    schedule 02.08.2011    source источник
comment
Я не очень понимаю, что вы имеете в виду, listBox.selectedItem выделен. Возможно, вы можете попробовать добавить элемент в шаблон данных listBox.   -  person Nghia Nguyen    schedule 02.08.2011
comment
Если вы закроете всплывающее окно, содержащее список, когда вы выберете элемент в списке, что все равно останется, чтобы показать выбор?   -  person Matt Lacey    schedule 02.08.2011
comment
С отложенным SelectionChaged (мой ответ ниже) пользователь получает визуальную обратную связь. Это короткое мгновение, но достаточно продолжительное, чтобы произвести впечатление на пользователя.   -  person Jan Slodicka    schedule 02.08.2011


Ответы (2)


Например, задержите обработку события SelectionChanged.

void list_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    Dispatcher.BeginInvoke(action);
}

void action()
{
    // put your code here
}
person Jan Slodicka    schedule 02.08.2011

Возьмите инструментарий Silverlight и добавьте эффект наклона (push-анимация, как в других приложениях).

Ссылайтесь на набор инструментов в своем проекте и добавьте пространство имен для использования набора инструментов:

<phone:PhoneApplicationPage 
    ...
    xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit">

В вашем шаблоне данных добавьте прикрепленное свойство IsTiltEnabled:

<DataTemplate>
    <Grid toolkit:TiltEffect.IsTiltEnabled="True">
        ...
    </Grid>
</DataTemplate>
person Rico Suter    schedule 07.09.2011