示例#1
0
        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;
        }
示例#3
0
        /// <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;
                }
            }
        }
示例#4
0
        /// <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);
        }