2012-04-16 15 views
0

ハイパーリンクを含むテキストの翻訳可能なブロックを表示するために使用しようとしているRichTextBoxがあります。私が抱えている問題は、翻訳可能でないコンテンツに手作業でSおよびコントロールをコーディングせずにテキストプロパティを設定する方法が見つからないということです。これを行う方法はありますか? Wordを使用して1つの文を含む単純なRTFファイルを保存しようとしましたが、必要なビットを抽出することができましたが、160行 RTFテキストを解読するのは難しいです。WPF RichTextBox with Inline HTML - i18n

理想的にはHTMLが容易になるだろうが、これは私がアンカーを解析するhttp://htmlagilitypack.codeplex.com/を使用してこれを解決し

答えて

0

をサポートしていないようです。

public static IEnumerable<Inline> ParseHtml(string text) 
     { 
      var inlines = new List<Inline>(); 
      HtmlDocument doc = new HtmlDocument(); 
      doc.LoadHtml(text); 
      if(doc.ParseErrors==null ||!doc.ParseErrors.Any()) { 
       foreach (var childNode in doc.DocumentNode.ChildNodes) { 
        switch(childNode.Name.ToLowerInvariant()) { 
         case "a": 
          var lnk = new Hyperlink(new Run(childNode.InnerText)); 
          lnk.NavigateUri = new Uri(childNode.Attributes["href"].Value); 
          inlines.Add(lnk); 
          break; 
         default: 
          inlines.Add(new Run(childNode.InnerText)); 
          break; 
        } 
       } 
      } 
      return inlines; 
     }