TextEffectResolver.Resolve(TextPointer, TextPointer, TextEffect) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
テキスト範囲上のテキスト効果をテキスト効果ターゲットのリストに対して解決します。
public:
static cli::array <System::Windows::Documents::TextEffectTarget ^> ^ Resolve(System::Windows::Documents::TextPointer ^ startPosition, System::Windows::Documents::TextPointer ^ endPosition, System::Windows::Media::TextEffect ^ effect);
public static System.Windows.Documents.TextEffectTarget[] Resolve (System.Windows.Documents.TextPointer startPosition, System.Windows.Documents.TextPointer endPosition, System.Windows.Media.TextEffect effect);
static member Resolve : System.Windows.Documents.TextPointer * System.Windows.Documents.TextPointer * System.Windows.Media.TextEffect -> System.Windows.Documents.TextEffectTarget[]
Public Shared Function Resolve (startPosition As TextPointer, endPosition As TextPointer, effect As TextEffect) As TextEffectTarget()
パラメーター
- startPosition
- TextPointer
開始テキスト ポインター。
- endPosition
- TextPointer
終了テキスト ポインター。
- effect
- TextEffect
テキストに適用する効果。
戻り値
テキスト範囲に対応する TextEffectTarget オブジェクトのコレクション。
例
次の例は、および RotateTransform のテキスト効果をTranslateTransformScaleTransformテキストに適用する方法を示しています。 この例の 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;
}
}
注釈
このメソッドは、テキストの連続ブロックごとに、スコープ (親) 要素を対象とするテキスト効果を作成します。
適用対象
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET