我是 Silverlight 的新手,想在Silverlight App中显示一些HTML。我一直在阅读一些方法,例如 Telerik 的HTMLPlaceHolder或HTML Overlays,通过将一些 css 和 javascript 与应用程序混合。
问题是两者都需要我设置 windowless=true ,在经历了以下限制之后:
我认为这不值得,有没有任何方法可以在没有无窗口设置为 true的情况下显示HTML ?
提前感谢您的帮助..
我是 Silverlight 的新手,想在Silverlight App中显示一些HTML。我一直在阅读一些方法,例如 Telerik 的HTMLPlaceHolder或HTML Overlays,通过将一些 css 和 javascript 与应用程序混合。
问题是两者都需要我设置 windowless=true ,在经历了以下限制之后:
我认为这不值得,有没有任何方法可以在没有无窗口设置为 true的情况下显示HTML ?
提前感谢您的帮助..
从 Silverlight 4 开始,当您的应用程序用尽浏览器时,您可以使用一个WebBrowser控件。从 Silverlight 5 开始,它也可以在浏览器中运行,但需要提升对用户系统的信任。
对于非常简单的 HTML,您还可以尝试HtmlTextBlock。
我正在使用 Telerik 的 RadRichTextBox,它可以让您渲染几乎任何类型的文档。
Herzmeister,非常感谢您的回答,在查看了您建议的 HTMLTextBlock 的代码后,我可以想出一个解决方案.. 这是我使用的代码..
.xaml
<UserControl x:Class="RadControlsSample.RadRichTextBoxTest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:telerikHtml="clr-namespace:Telerik.Windows.Documents.FormatProviders.Html;assembly=Telerik.Windows.Documents.FormatProviders.Html"
mc:Ignorable="d" d:DesignWidth="700" d:DesignHeight="400" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
Loaded="Example_Loaded">
<Grid x:Name="LayoutRoot">
<telerik:RadRichTextBox Grid.Row="1" x:Name="richTextBox" DataContext="{Binding}" IsReadOnly="True" ShowMergeFieldsHighlight="False" IsSpellCheckingEnabled="False" />
</Grid>
</UserControl>
。CS
using System;
using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Resources;
using Telerik.Windows.Documents.FormatProviders.Html;
using Telerik.Windows.Documents.Model;
namespace RadControlsSample
{
public partial class RadRichTextBoxTest : UserControl
{
private const string SampleDocumentPath = "SampleData/SomeHtml.html";
public RadRichTextBoxTest()
{
InitializeComponent();
}
private void Example_Loaded(object sender, RoutedEventArgs e)
{
//Load html file from the content file
var fileUri = new Uri(SampleDocumentPath, UriKind.Relative);
StreamResourceInfo streamInfo = System.Windows.Application.GetResourceStream(fileUri);
var reader = new StreamReader(streamInfo.Stream);
this.richTextBox.Document = new HtmlFormatProvider().Import(reader.ReadToEnd());
this.richTextBox.Document.LayoutMode = DocumentLayoutMode.Flow;
}
}
}