public void OnInsertCodeBox(IRibbonControl control) { OneNotePageHandler page = new OneNotePageHandler(app); var tElement = page.GetCursorElement("T"); var oeElement = tElement.Parent; if (oeElement.Name.LocalName != "OE") { MessageBox.Show("Cannot Insert Code Box here"); return; } var tableElement = XDocument.Parse(@" <one:OE selected='partial' xmlns:one='http://schemas.microsoft.com/office/onenote/2013/onenote'> <one:Table bordersVisible='false' hasHeaderRow='false'> <one:Columns> <one:Column index='0' width='37.11000061035156'/> </one:Columns> <one:Row> <one:Cell shadingColor='#F2F2F2'> <one:OEChildren selected='partial'> <one:OE alignment='left' quickStyleIndex='0' selected='partial' style='font-family:Microsoft YaHei Mono;font-size:11.0pt'> <one:T selected='all'><![CDATA[]]></one:T> </one:OE> </one:OEChildren> </one:Cell> </one:Row> </one:Table> </one:OE> ").Root; int tElementsCount = oeElement.Elements().Count(); if (tElementsCount == 1) { oeElement.ReplaceWith(tableElement); } else { int i = 0; while (oeElement.Elements().ElementAt(i) != tElement) { i++; } tElement.Remove(); page.SplitOEElement(oeElement, i); oeElement.AddAfterSelf(tableElement); } page.Save(); }
public void OnOpenInVSCode(IRibbonControl control) { OneNotePageHandler page = new OneNotePageHandler(app); string text = page.GetSelectedText(); var isCell = false; if (string.IsNullOrEmpty(text)) { isCell = true; var cell = page.GetCursorElement("Cell"); if (cell == null) { MessageBox.Show("Please select text or set input cursor into a table."); return; } else { text = page.GetInnerText(cell); } } CopyToClipboard(text); VSCodeHandler codeHandler = new VSCodeHandler(setting.VSCode); if (codeHandler.EditCode(GetDefaultValue("cmbStyle"), out string newText)) { CopyToClipboard(newText); FormatByVSCode(false); wordHandler.PasteAndCopy(true); if (isCell) { // 单元格替换 SendKeys.SendWait("^(aav)"); } else { SendKeys.SendWait("^(v)"); } } }