WPF flowdocument-Objekt-Bindung
Ich bin mit Microsoft XAML/HTML-Konverter zum konvertieren von HTML aus einer Datenbank in eine XAML-string. Die Microsoft-Konverter zu sein scheint Formatierung text korrekt, aber ich habe Probleme beim binden der Ausgabe an ein XAML-Objekt.
Beispielsweise mit dem folgenden HTML-Code:
<span style="font-weight: bold; font-family: Georgia; color: rgb(0, 96, 144); text-decoration: underline;">Hello world.</span>
Werde ich die XAML-Ausgang:
<Section xml:space="preserve" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Paragraph>
<Run FontWeight="bold" TextDecorations="Underline" FontFamily="georgia">Hello world.</Run>
</Paragraph>
Vorausgesetzt, die HTML-kommt in die WPF-Anwendung, wie die "Text" - Eigenschaft des database-Objekts, dann benutze ich Binden und Konverter wie so:
<TextBlock Text="{Binding Path=ActiveDataItem.Text, Converter={StaticResource convertHTMLToXaml}}" />
Leider druckt nur den XAML-Code an der Seite und analysieren nicht. Ich gehe davon aus dies ist weil ich bin die Bindung an die TextBlock-und das ist das erwartete Ergebnis. Meine Frage ist, wie kann ich binden diese Ausgabe ein flowdocument-Objekt bezogenen Steuern, wie ein Absatz, Ausgeführt -, Abschnitt-oder was auch immer?
Hinweis: ich weiss, dass es ein schon ein paar threads gewidmet konvertieren von HTML in XAML. Ich habe verwiesen wird, die meisten von Ihnen, aber Sie alle fehlen auf diesem Schritt. Jede Hilfe oder links sind willkommen, vielen Dank im Voraus.
InformationsquelleAutor Phil Scholtes | 2010-09-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für Ihr Beispiel, Sie haben die xaml-als text und gebunden an die Text-Eigenschaft. Dies zeigt nur den xaml-Code als text.
Wenn es einen direkten Weg, es zu binden, wie der Inhalt eines flowdocument-Objekt, ich weiß nicht. IMO ist dies nicht möglich, aufgrund der Struktur des flowdocument-Objekt. Aber vielleicht kennt ja jemand eine Möglichkeit und postet Sie eine Lösung für dieses.
Es manuell zu tun, betrachten wir das Beispiel des auf dieser Seite. Dort habe ich gesehen, dass der Autor lädt ein XAML-string in einem RichTextBox-Steuerelement. Sie können den code ändern, um Ihre Bedürfnisse (RichtTextBox funktioniert auch mit FlowDocs). Suche für public static class RichTextboxAssistant, es gibt den code ein, den Sie suchen. Achten Sie auf die Codierung. Er verwendet ASCII. Haben Sie vielleicht eine änderung auf UTF.
Hoffe, das hilft.
InformationsquelleAutor HCL
Für .NET-Versionen vor 4.0: In dieser link, Vincent Van Den Berghe erklären, wie erweitern flowdocument-Objekt zur Unterstützung der "Bindable Läuft", überprüfen Sie es heraus
Für .NET 4.0: Laufen.Text-Eigenschaft ist bindbar
InformationsquelleAutor juanjo.arana