Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Элемент TextBlock с анимацией




Текстовый элемент TextBlock поддерживает способы программирования Windows и стили Web. Он обладает развитыми средствами анимации и динамического программирования стилей. Настройки элемента можно задавать в декларативном (XAML) и процедурном (C#) режимах. Проиллюстрируем некоторые возможности элемента TextBlock на примере.

  • Добавьте в файл Window1.xaml проекта WpfText1 вкладку TextBlock1 со следующей разметкой
<! --Вкладка TextBlock1--> < TabItem Header=" TextBlock1" > < Border Background=" Black" > < Border Margin=" 25" CornerRadius=" 50" BorderThickness=" 2" BorderBrush=" Yellow" > <! --Радиальный градиент заливки Border--> < Border.Background> < RadialGradientBrush> < GradientStop Color=" Blue" Offset=" 0.1" /> <! --Непрозрачный alfa-канал и 000000 (Black)--> < GradientStop Color=" #FF000000" Offset=" 1.2" /> < /RadialGradientBrush> < /Border.Background> <! --Анимация градиентной подсветки внешнего контура Border--> < Border.BitmapEffect> < OuterGlowBitmapEffect x: Name=" glow" GlowColor=" Yellow" GlowSize=" 0" /> < /Border.BitmapEffect> < Border.Triggers> < EventTrigger RoutedEvent=" Border.Loaded" > < BeginStoryboard> < Storyboard> < DoubleAnimation Storyboard.TargetName=" glow" Storyboard.TargetProperty=" GlowSize" From=" 30" To=" 0" Duration=" 0: 0: 1" AutoReverse=" True" RepeatBehavior=" Forever" /> < /Storyboard> < /BeginStoryboard> < /EventTrigger> < /Border.Triggers> <! --Текстовый блок--> < TextBlock Name=" text" Text=" " HorizontalAlignment=" Center" VerticalAlignment=" Center" Foreground=" White" FontSize=" 16" Initialized=" text_Initialized" > < TextBlock.Inlines> < Bold> Это текстовый< /Bold> < LineBreak /> < Italic> элемент TextBlock< /Italic> < LineBreak /> < Run FontWeight=" Bold" Foreground=" Red" > Очень < /Run> < Run FontStyle=" Italic" TextDecorations=" Underline" Foreground=" Yellow" > красивый < /Run> < /TextBlock.Inlines> <! --Действия в TextBlock--> < TextBlock.LayoutTransform> < RotateTransform x: Name=" rotateTransform" Angle=" 0" /> < /TextBlock.LayoutTransform> < TextBlock.Triggers> <! --Анимация поворота--> < EventTrigger RoutedEvent=" TextBlock.MouseDown" > < EventTrigger.Actions> < BeginStoryboard> < Storyboard> < DoubleAnimation Storyboard.TargetName=" rotateTransform" Storyboard.TargetProperty=" Angle" From=" 0" To=" 360" Duration=" 0: 0: 3" RepeatBehavior=" 2x" /> < /Storyboard> < /BeginStoryboard> < /EventTrigger.Actions> < /EventTrigger> <! --Анимация изменения размера при заходе мыши--> < EventTrigger RoutedEvent=" TextBlock.MouseEnter" > < EventTrigger.Actions> < BeginStoryboard> < Storyboard> < DoubleAnimation Storyboard.TargetName=" text" Storyboard.TargetProperty=" FontSize" To=" 26" Duration=" 0: 0: 0.2" /> < /Storyboard> < /BeginStoryboard> < /EventTrigger.Actions> < /EventTrigger> <! --Анимация изменения размера при сходе мыши--> < EventTrigger RoutedEvent=" TextBlock.MouseLeave" > < EventTrigger.Actions> < BeginStoryboard> < Storyboard> < DoubleAnimation Storyboard.TargetName=" text" Storyboard.TargetProperty=" FontSize" Duration=" 0: 0: 1" /> < /Storyboard> < /BeginStoryboard> < /EventTrigger.Actions> < /EventTrigger> < /TextBlock.Triggers> < /TextBlock> < /Border> < /Border> < /TabItem>
  • Добавьте в процедурную часть (файл Window1.xaml.cs) код обработчика события Initialized элемента TextBlock, который в динамическом режиме дополняет декларативную настройку этого текстового элемента
private void text_Initialized(object sender, EventArgs e) { // Добавляем в TextBlock строку Run run = new Run(" \nDynamic"); run.FontFamily = new FontFamily(" Curlz MT"); text.Inlines.Add(run); run = new Run(" Text"); run.FontFamily = new FontFamily(" Comic Sans MS"); run.Foreground = Brushes.Aqua; text.Inlines.Add(new Bold(run)); }
  • Запустите проект - получим анимационный текст с персональными настройками стилей


Данная страница нарушает авторские права?





© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.