我是Silverlight的新手,我想在一个Silverlight应用程序中显示一些HTML。我一直在阅读一些方法,比如Telerik的HTMLPlaceHolder或的HTML覆盖,方法是将一些css和javascript混合到应用程序中。
问题是,这两种方法都要求我设置windowless=true,在通过它的限制之后:
sdk/archive/2008/11/12/limitations-of-windowless-mode-for-silverlight.aspx
我不认为这是值得的,所以,在没有的情况下,是否有任何方法来显示HTML--没有窗口的设置为true?
提前感谢您的帮助。
发布于 2012-09-21 10:25:34
我正在使用Telerik的RadRichTextBox,它允许您呈现几乎任何类型的文档。
赫兹迈斯特,非常感谢你的回答,在看了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;
}
}
}发布于 2012-09-20 13:46:43
从Silverlight 4开始,当应用程序没有浏览器时,可以使用一个WebBrowser控件。因为Silverlight 5,它也可以在浏览器中工作,但是需要用户系统上的崇高的信任。
对于非常简单的HTML,您也可以尝试使用HtmlTextBlock。
https://stackoverflow.com/questions/12513759
复制相似问题