WPF Text→Path変換2

恥ずかしいエントリを公開しないよう見直していたら他の簡単な方法をまた見つけた。

WPFでTextからPathへの変換処理、前々回ご紹介したところですが以下のようにするともっと簡単にできました。FormattedTextを使う方法でこんな感じ。

StringToPathConverter2.cs

namespace WpfTextClip
{
    using System.Globalization;
    using System.Windows.Media;
    using System.Windows;
    using System.Windows.Shapes;

    public class StringToPathConverter2
    {
        public static System.Windows.Shapes.Path ConvertToPath(string text)
        {
            var formatedText = new FormattedText(text, new CultureInfo("ja"), FlowDirection.LeftToRight,
                new Typeface("verdana"), 150, Brushes.Black);
            Path path = new Path();
            path.Data = formatedText.BuildGeometry(new Point());
            return path;
        }

    }
}

これを以前同様、MainWindowのボタンハンドラでGridをclipするように

MainWindow.xaml.cs

namespace WpfTextClip
{
    using System.Windows;
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void convertbutton_Click(object sender, RoutedEventArgs e)
        {
            targetCanvas.Clip = StringToPathConverter2.ConvertToPath(textBox.Text).Data;
        }
    }
}

処理してやると以下のようになります。

texttopath2

やりたいこととしてはできていますね。前々回の内容はGraphicsPath→Pathへの変換という意味では意味がありますが、Textからの変換だと上の方法のほうが楽です。

 

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中