Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> После добавлении анимаци ListBox перестал рабатать 
V
    Опции темы
baly
Дата 7.8.2010, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.8.2010

Репутация: нет
Всего: нет



Здравствуйте! У меня такая проблема, когда я добавила анимацию в ListBox у меня почему то перестал выбираться элемент! Подскажите пожалуйста в чем дело?
   Все действие с ListBox у меня происходит в ресурсном словаре : 
 
Код

<Style x:Key="ListBox2" TargetType="{x:Type ListBox}">
        <Setter Property="Background">
            <Setter.Value>
                <LinearGradientBrush>
                    <GradientStop Offset="0.0" Color="Aquamarine"></GradientStop>
                    <GradientStop Offset="0.5" Color="CadetBlue"></GradientStop>
                    <GradientStop Offset="0.9" Color="Blue"></GradientStop>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>

        <Setter Property="ItemContainerStyle">
            <Setter.Value>
                <Style TargetType="{x:Type ListBoxItem}">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type ListBoxItem}">
                                <ContentPresenter></ContentPresenter>
                                <ControlTemplate.Triggers>
                                    <EventTrigger RoutedEvent="ListBoxItem.MouseEnter">
                                        <EventTrigger.Actions>
                                            <BeginStoryboard>
                                                <Storyboard>
                                                    <DoubleAnimation Storyboard.TargetProperty="FontSize" To="20" Duration="0:0:1"></DoubleAnimation>

                                                </Storyboard>
                                            </BeginStoryboard>
                                        </EventTrigger.Actions>
                                    </EventTrigger>
                                    <EventTrigger RoutedEvent="ListBoxItem.MouseLeave">
                                        <EventTrigger.Actions>
                                            <BeginStoryboard>
                                                <Storyboard>
                                                    <DoubleAnimation Storyboard.TargetProperty="FontSize" BeginTime="0:0:0.5" Duration="0:0:0.2"></DoubleAnimation>
                                                </Storyboard>
                                            </BeginStoryboard>
                                        </EventTrigger.Actions>
                                    </EventTrigger>
                                </ControlTemplate.Triggers>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </Setter.Value>
        </Setter>
        <Style.Resources>
            <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="LemonChiffon"></SolidColorBrush>
            <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="PowderBlue"></SolidColorBrush>
        </Style.Resources>
    </Style>

   А вот так вот я вызываю этот словарь в главном xaml окне:
Код

<ListBox Style="{StaticResource ListBox2}" Margin="9,103,107,92">
            <ListBoxItem Cursor="Hand">Eric</ListBoxItem>
            <ListBoxItem Cursor="Hand">Stan</ListBoxItem>
            <ListBoxItem Cursor="Hand">Kyle</ListBoxItem>
            <ListBoxItem Cursor="Hand">Kenny</ListBoxItem>
            <ListBoxItem Cursor="Hand">Bebe</ListBoxItem>
            <ListBoxItem Cursor="Hand">Clyde</ListBoxItem>
            <ListBoxItem Cursor="Hand">Craig</ListBoxItem>
            <ListBoxItem Cursor="Hand">Jimmy</ListBoxItem>
            <ListBoxItem Cursor="Hand">Pip</ListBoxItem>
            <ListBoxItem Cursor="Hand">Token</ListBoxItem>
            <ListBoxItem Cursor="Hand">Tweek</ListBoxItem>
            <ListBoxItem Cursor="Hand">Wendy</ListBoxItem>
        </ListBox>              

PM MAIL   Вверх
Kefir
Дата 7.8.2010, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 22
Всего: 87



Ты заменяешь стандартный шаблон контейнера на полностью свой. Стандартный шаблон как раз расставляет на свои места все свойства, приходящие извне (тот же фон, к примеру). Соответственно - у тебя не хватает триггера для IsSelected=True, который бы устанавливал цвет выделения а также к примеру Border вокруг твоего ContentPresentera. Border-у надо привязать значение фона к значению фона контейнера при помощи TemplateBinding.

Всю эту лекцию я не буду зачитывать лучше иди туды - http://msdn.microsoft.com/ru-ru/library/ms745683.aspx или туда - http://msdn.microsoft.com/ru-ru/library/ms742882.aspx

Добавлено через 8 минут и 42 секунды
Добавлю конкретики:

Недостающий триггер:
Код

                                        <Trigger Property="IsSelected" Value="True">
                                            <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
                                        </Trigger>


И обернутый ContentPresenter:
Код

                                    <Border Background="{TemplateBinding Background}">
                                        <ContentPresenter></ContentPresenter>
                                    </Border>


Но всё-таки я настоятельно рекоммендую прочитать от корки до корки данные мной ссылки - не зная их содержания очень сложно жить с WPF
PM MAIL WWW Skype   Вверх
baly
Дата 8.8.2010, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.8.2010

Репутация: нет
Всего: нет



Спасибо вам большое!!!smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0437 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.