private async void MyEditor_ControlLoaded(object sender, EventArgs e) { var displayOptions = DisplayOptions.CreateOptions(); var editorOptions = EditorOptions.CreateOptions(); var languageOptions = await EditorLanguageOptions.GetDefaultEnOptionsAsync(); editorOptions.Theme = ""; await MyEditor.Initialize("# Hello Markdown!", displayOptions, editorOptions, "", languageOptions); var cssFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/acrmd.css")); string css = await FileIO.ReadTextAsync(cssFile); await MyEditor.SetPreviewStyle(css); }
private async void MyEditor_ControlLoaded(object sender, EventArgs e) { var displayOptions = DisplayOptions.CreateOptions(EditBoxDisplayMode.Editor); var editorOptions = EditorOptions.CreateOptions(); editorOptions.FontFamily = "Microsoft YaHei UI"; var languageOptions = await EditorLanguageOptions.GetDefaultEnOptionsAsync(); editorOptions.Theme = "none"; var mdFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/test.md")); string md = await FileIO.ReadTextAsync(mdFile); await MyEditor.Initialize(md, displayOptions, editorOptions, "", languageOptions); ControlPanel.Visibility = Visibility.Visible; }
/// <summary> /// Update language configuration items /// </summary> /// <param name="options">Language configuration</param> public void UpdateLanguageOptions(EditorLanguageOptions options) { if (_contextMenuFlyout == null) { throw new KeyNotFoundException("No popup menu item found"); } var btns = _contextMenuFlyout.PrimaryCommands.Union(_contextMenuFlyout.SecondaryCommands).OfType <AppBarButton>(); foreach (var btn in btns) { string id = btn.Tag.ToString(); var lan = options.Options.Where(p => p.Id == id).FirstOrDefault(); if (lan != null) { btn.Label = lan.Text; } } }
/// <summary> /// Initialize the control /// </summary> /// <param name="markdown">Initial Markdown text</param> /// <param name="displayOptions">Control layout configuration</param> /// <param name="editorOptions">Edit module configuration</param> /// <param name="themeData">Initialized theme data (JSON)</param> /// <param name="languages">Language configuration items passed in during initialization</param> /// <returns></returns> public async Task Initialize(string markdown, DisplayOptions displayOptions, EditorOptions editorOptions, string themeData = "", EditorLanguageOptions languages = null) { if (displayOptions == null || editorOptions == null) { throw new ArgumentNullException("The incoming configuration cannot be null"); } if (languages != null) { CurrentLanguageOptions = languages; } markdown = GetSafeMarkdownString(markdown); await UpdateDisplayAsync(displayOptions); string editorJson = JsonConvert.SerializeObject(editorOptions); EditorLoaded += Initialize_EditorLoaded; await InvokeScriptAsync(InvokeScriptTargetType.Editor, "initialization", markdown, JsonConvert.SerializeObject(editorOptions), themeData); }