Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2013, 23:11   #1
No_Comments
Пользователь
 
Регистрация: 03.07.2011
Сообщений: 92
По умолчанию Анимация вдавливания при нажатии на элемент. Windows Phone

Здравствуйте!
Подскажите, пожалуйста, как реализовать анимацию "вдавливания" при нажатии на TextBlock и Grid на StackPanel с помощью XAML?
И можно ли такую анимацию реализовать из кода C#?
No_Comments вне форума Ответить с цитированием
Старый 25.12.2013, 05:19   #2
Водяной Змей
 
Регистрация: 06.11.2013
Сообщений: 3
По умолчанию

Здравствуйте.

Вдавленность - это тень наоборот. Т.е. тень, отображающаяся вовнутрь, а не наружу.
Прямоугольным контролам такой эффект можно придать через двойной Border: один - внутренний - будет создавать эффект вдавленности, а другой - наружный - не давать тени выйти за пределы контрола.
Вот пример на XAML.
Код:
<Grid Height="132" HorizontalAlignment="Left" Margin="43,80,0,0" Name="grid1" VerticalAlignment="Top" Width="325" Background="#FFA0F600">
    <Border Background="Transparent" BorderBrush="DarkGray" BorderThickness="1" ClipToBounds="True">
        <Border Background="Transparent" BorderBrush="Black" BorderThickness="1" Margin="-2">
            <Border.Effect>
                <DropShadowEffect ShadowDepth="0" BlurRadius="10"/>
            </Border.Effect>
        </Border>
    </Border>
</Grid>
Как сделать, чтобы вдавливание отображалось только при нажатии, разберётесь сами.

Цитата:
И можно ли такую анимацию реализовать из кода C#?
Всё, что можно реализовать на XAML, можно реализовать и на C#, VB, JS и C++.
XAML - это не отдельный язык. Это просто форма записи дизайна окна, удобная для ручного редактирования.
В винформах XAML'а нету и дизайн записывается прямо на ЯП программной части. Но винформы проще, чем WPF, Metro и WP, они не рассчитаны под столько украшений, так что в нормальном состоянии хватает и WYSIWYG-редактирования.
Водяной Змей вне форума Ответить с цитированием
Старый 25.12.2013, 20:24   #3
No_Comments
Пользователь
 
Регистрация: 03.07.2011
Сообщений: 92
По умолчанию

Для StackPanel такой код не работает(
Border.Effect нету, ClipToBounds тоже.
No_Comments вне форума Ответить с цитированием
Старый 26.12.2013, 00:30   #4
Водяной Змей
 
Регистрация: 06.11.2013
Сообщений: 3
По умолчанию

Цитата:
Border.Effect нету
1) Было бы удивительно, если бы у StackPanel было свойство Border.Effect.

2) Читайте внимательнее. В моём примере, эффект вдавленности придаётся Grid'у, а никак не Border'у.
Если бы придавался Border'у, я бы не стал прописывать туда Grid.

И переделать под StackPanel вполне реально, если разместить Border'ы в StackPanel'и, как я разместил в Grid'е.

Последний раз редактировалось Водяной Змей; 26.12.2013 в 00:33.
Водяной Змей вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Windows Phone SDK для Windows XP Blondy Помощь студентам 1 01.05.2013 16:03
Windows Phone VS Android Alar Операционные системы общие вопросы 2 28.03.2012 14:44
Появление фрейма при нажатии на элемент ListBox HosterGH Помощь студентам 0 09.11.2011 14:52
Анимация при нажатии на кнопку Kapitan4ik Общие вопросы Delphi 7 26.10.2011 12:25
Windows phone 7. Style Tanyushka WPF, UWP, WinRT, XAML 0 06.03.2011 22:57