powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Проблема со стилем
5 сообщений из 5, страница 1 из 1
Проблема со стилем
    #38870586
dennisss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно создать стиль для кнопок. Чтобы при наведении мыши на кнопку плавно появлялась картинка, а при MouseLeave плавно исчезала.

Делаю так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
        <Style x:Key="<MyButtonStyle">
            <Style.Triggers>
                <EventTrigger RoutedEvent="Mouse.MouseEnter">
                    <EventTrigger.Actions>
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetName="MyImage" Storyboard.TargetProperty="Opacity" To="1" Duration="00:00:00.5"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger.Actions>
                </EventTrigger>
                <EventTrigger RoutedEvent="Mouse.MouseLeave">
                    <EventTrigger.Actions>
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetName="MyImage" Storyboard.TargetProperty="Opacity" To="0" Duration="00:00:00.5"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger.Actions>
                </EventTrigger>
            </Style.Triggers>
        </Style>


Но так не получается, т.к. нельзя использовать Storyboard.TargetName="MyImage".

Как сделать правильно? Или с помощью стиля не получится и надо один и тот же код повторять для каждой кнопки?
...
Рейтинг: 0 / 0
Проблема со стилем
    #38870591
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TargetName должен быть задан внутри ControlTemplate. Если картинка в свойстве Content, то ставьте анимацию на картинку (т. е. стиль для класса Image), а не на кнопку.
...
Рейтинг: 0 / 0
Проблема со стилем
    #38870685
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dennisss,

вообще такие вещи в шаблоне удобнее делать не с помощью триггеров, а с помощью VisualStateManager'а
у кнопки есть группы состояний, каждая группа имеет набор состояний в которых может находится кнопка. В 1 группе может быть только 1 текущее состояние, а вот состояние между группами не пересекаются.
Вот тут для кнопки описаны наборы состояний и даже есть пример как пользоваться менеджером состояний
...
Рейтинг: 0 / 0
Проблема со стилем
    #38870686
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dennisss,

случайно ctrl+enter нажал :)
вот ссылка:
https://msdn.microsoft.com/en-us/library/cc278069(VS.95).aspx

для анимации базового поведения элементов управления лучше использовать VisualStateManager (для меня конечно), а вот нетипичное поведение с помощью триггеров, но в принципе можно создать свой контрол со своими группами и состояниями.
...
Рейтинг: 0 / 0
Проблема со стилем
    #38871462
dennisss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за советы.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Проблема со стилем
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]