1

私はSilverlightを初めて使用し、 Silverlightアプリ内にHTMLを表示したいと考えています。TelerikのHTMLPlaceHolderやHTMLOverlaysのように、いくつかのcssとjavascriptをアプリと組み合わせてそれを行ういくつかの方法について読んでいます。

問題は、両方ともwindowless = trueを設定する必要があることです。これは、次の制限を通過した後です。

http://blogs.msdn.com/b/silverlight_sdk/archive/2008/11/12/limitations-of-windowless-mode-for-silverlight.aspx

価値があるとは思いませんが、ウィンドウレスをtrueに設定せずにHTMLを表示する方法はあります

よろしくお願いします。

4

2 に答える 2

2

Silverlight 4以降、アプリケーションのブラウザーが不足しているときに使用できるWebBrowserコントロールがあります。Silverlight 5以降、ブラウザーでも機能しますが、ユーザーのシステムに対する信頼性を高める必要があります。

非常に単純なHTMLの場合は、HtmlTextBlockを試すこともできます。

于 2012-09-20T13:46:43.003 に答える
0

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;
        }
    }
}
于 2012-09-21T10:25:34.427 に答える