Отображение Richtext в приложении WP7 - PullRequest
3 голосов
/ 11 октября 2011

Я хочу отобразить текст о моем приложении WP7. Но он содержит ссылки, жирный текст и список маркеров. Есть ли простой способ отобразить это как какой-нибудь richtext или html? Я не хочу создавать это, используя стековую панель с текстовыми блоками и гиперссылками ...

Ответы [ 2 ]

2 голосов
/ 11 октября 2011

Релиз Mango для Windows Phone увеличил версию Silverlight с 3 до 4. В рамках этого они добавили элемент управления RichTextBox, который может делать то, что вам нужно.'

Одна статья (по общему признанию старая) о Первый взгляд на элемент управления RichTextBox .

2 голосов
/ 11 октября 2011

Если у вас есть HTML-страница или файл для отображения, вы должны использовать WebBrowser . Он поддерживает все основные функции, которые вы ожидаете от веб-браузера; HTML-разметка, стили, якорные теги переходят на другие ресурсы или места на вашей странице.

Чтобы отобразить файл, расположенный внутри проекта Visual Studio, вам нужно сделать что-то вроде this . Дайте мне знать, если вам нужна дополнительная информация. Надеюсь, это поможет.

Al.

=== обновлено ===

/// <summary>
/// Contains extension methods for the WebBrowser control.
/// </summary>
public static class WebBrowserExtensions {

    private static void SaveFileToIsoStore(String fileName) {
        //These files must match what is included in the application package,
        //or BinaryStream.Dispose below will throw an exception.
        using(IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication()) {
            if (false == isoStore.FileExists(fileName)) {
                StreamResourceInfo sr = Application.GetResourceStream(new Uri(fileName, UriKind.Relative));
                using (BinaryReader br = new BinaryReader(sr.Stream)) {
                    byte[] data = br.ReadBytes((int)sr.Stream.Length);
                    SaveToIsoStore(fileName, data);
                }
            }
        }
    }

    private static void SaveToIsoStore(string fileName, byte[] data) {
        string strBaseDir = string.Empty;
        string delimStr = "/\\";
        char[] delimiter = delimStr.ToCharArray();
        string[] dirsPath = fileName.Split(delimiter);

        using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication()) {
            //Recreate the directory structure
            for (int i = 0; i < dirsPath.Length - 1; i++) {
                strBaseDir = System.IO.Path.Combine(strBaseDir, dirsPath[i]);
                isoStore.CreateDirectory(strBaseDir);
            }

            //Remove existing file
            if (isoStore.FileExists(fileName)) {
                isoStore.DeleteFile(fileName);
            }

            //Write the file
            using (BinaryWriter bw = new BinaryWriter(isoStore.CreateFile(fileName))) {
                bw.Write(data);
                bw.Close();
            }
        }
    }

    public static void NavigateToHtmlFile(this WebBrowser webBrowser, String fileName) {
        SaveFileToIsoStore(fileName);
        using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication()) {

            if (isoStore.FileExists(fileName)) {
                webBrowser.Navigate(new Uri(fileName, UriKind.Relative));
            } else {
                //something bad has happened here
            }
        }
    }
}

а потом в вашем xaml

MyWebControl.NavigateToHtmlFile(pathToHtmlFile);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...