Элемент 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)); }
  • Запустите проект - получим анимационный текст с персональными настройками стилей








Дата добавления: 2015-04-15; просмотров: 873;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.