TextEffectTarget Класс

Определение

Результат использования TextEffectResolver для установки текстового эффекта. Состоит из созданного TextEffect и DependencyObject, для которого должен быть установлен TextEffect.

public ref class TextEffectTarget
public class TextEffectTarget
type TextEffectTarget = class
Public Class TextEffectTarget
Наследование
TextEffectTarget

Примеры

В следующем примере показано, как применить текстовый TranslateTransformэффект , ScaleTransformи RotateTransform к тексту. Ниже приведен код XAML для примера.

<Page  
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="SDKSample.TextEffectTargetExample"
    Title="TextBlock Properties Sample">

  <StackPanel>

    <RadioButton Click="teTranslate" Margin="5,0,5,0">TranslateTransform</RadioButton>
    <RadioButton Click="teScale" Margin="5,0,5,0">ScaleTransform</RadioButton>
    <RadioButton Click="teRotate" Margin="5,0,5,0">RotateTransform</RadioButton>

    <TextBlock Background="LightGray" TextWrapping="Wrap" Name="tb1">
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
      Nam laoreet dolor et dolor. Vestibulum quis nunc auctor ante dignissim venenatis. Curabitur wisi.
      Donec faucibus auctor ipsum. In fermentum dui.  Ut suscipit aliquam eros. Nullam elementum quam eu
      enim. Sed a purus id nisl imperdiet blandit. Cum sociis natoque penatibus et magnis dis parturient
      montes, nascetur ridiculus mus. Sed at quam.
    </TextBlock>

  </StackPanel>

</Page>

Ниже для примера приведен код.

using System;
using System.Windows;
using System.Collections;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Documents;

namespace SDKSample
{
    public partial class TextEffectTargetExample : Page
    {

        // Event handler for translating (moving) the text element.
        public void teTranslate(object sender, RoutedEventArgs e)
        {
            // Wipe out existing TextEffects on the TextBlock
            DisableTextEffects();

            TextEffect myEffect = new TextEffect();
            myEffect.PositionStart = 0;
            myEffect.PositionCount = 999;

            // Create a TranslateTransform that moves the TextBlock to an offset position of
            // 50,50.
            TranslateTransform myTranslateTransform = new TranslateTransform(50,50);
            myEffect.Transform = myTranslateTransform;

            // Apply the effect to the TextBlock
            EnableTextEffects(tb1, myEffect);
         }

         // Event handler for transforming the size of the text element.
        public void teScale(object sender, RoutedEventArgs e)
        {
            // Wipe out existing TextEffects on the TextBlock
            DisableTextEffects();

            TextEffect myEffect = new TextEffect();
            myEffect.PositionStart = 0;
            myEffect.PositionCount = 999;

            // Create a ScaleTransform that scales the TextBlock by 5.
            ScaleTransform myScaleTransform = new ScaleTransform(5,5);
            myEffect.Transform = myScaleTransform;

            // Apply the effect to the TextBlock
            EnableTextEffects(tb1, myEffect);
        }

        public void teRotate(object sender, RoutedEventArgs e)
        {
            // Wipe out existing TextEffects on the TextBlock
            DisableTextEffects();

            TextEffect myEffect = new TextEffect();
            myEffect.PositionStart = 0;
            myEffect.PositionCount = 999;

            // Create a ScaleTransform that rotates the text by 45 degrees.
            RotateTransform myRotateTransform = new RotateTransform(45);
            myEffect.Transform = myRotateTransform;

            // Apply the effect to the TextBlock
            EnableTextEffects(tb1, myEffect);
        }

        // Disable all existing text effects to make way for new ones.
        private void DisableTextEffects()
        {
            if (_textEffectTargets != null)
            {
                foreach (TextEffectTarget target in _textEffectTargets) 
                     target.Disable();
            }
        }

        // Enable TextEffectTargets and apply effect to TextBlock.
        private void EnableTextEffects(TextBlock tb, TextEffect effect)
        {
            _textEffectTargets = TextEffectResolver.Resolve(tb.ContentStart, tb.ContentEnd, effect);
            foreach (TextEffectTarget target in _textEffectTargets)
                target.Enable();           
        }

        private TextEffectTarget[] _textEffectTargets; 
    }
}

Свойства

Element

Получает целевой DependencyObject для TextEffect.

IsEnabled

Возвращает значение, определяющее, включен ли текстовый эффект для целевого элемента.

TextEffect

Возвращает тип TextEffect объекта TextEffectTarget.

Методы

Disable()

Отключает TextEffect на целевом объекте эффекта.

Enable()

Включает TextEffect в целевом тексте.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел