0

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

理想的にはHTMLの方が簡単ですが、これはサポートされていないようです

4

1 に答える 1

0

http://htmlagilitypack.codeplex.com/を使用してアンカーを解析することで、これを解決しました。

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;
        }
于 2012-04-22T15:40:25.220 に答える