private void WidgetTextToRichText(Widget currWidget) { if (radioStation.IsOff()) { //richDisplay.Clear(); timer1.Stop(); return; } if (currWidget.MoveTo != null) { currentWidget = currWidget.MoveTo; if (currentWidget.MoveTo != null) { currentWidget.MoveTo = null; } } currentWidget.Update(); var lines = currentWidget.ToLines(); //richDisplay.Text = string.Join("\n", lines); FlowDocument myFlowDoc = new FlowDocument(); var line1 = new Paragraph(new Run(lines[0])); line1.Name = "line1"; var line2 = new Paragraph(new Run(lines[1])); line2.Name = "line2"; var line3 = new Paragraph(new Run(lines[2])); line3.Name = "line3"; var line4 = new Paragraph(new Run(lines[3])); line4.Name = "line4"; myFlowDoc.Blocks.Add(line1); myFlowDoc.Blocks.Add(line2); myFlowDoc.Blocks.Add(line3); myFlowDoc.Blocks.Add(line4); richDispley.Document = myFlowDoc; if (lines.Length > 0) { selectTextRichDisplay(0, lines[0].Length); line1.FontSize = currentWidget.LineSize[0]; line1.Margin = new Thickness(0, 0, 0, currentWidget.LineCharOffset[0]); } if (lines.Length > 1) { selectTextRichDisplay(lines[0].Length + 1, lines[1].Length); line2.FontSize = currentWidget.LineSize[1]; line2.Margin = new Thickness(0, 0, 0, currentWidget.LineCharOffset[1]); } if (lines.Length > 2) { selectTextRichDisplay(lines[0].Length + lines[1].Length + 2, lines[2].Length); line3.FontSize = currentWidget.LineSize[2]; line3.Margin = new Thickness(0, 0, 0, currentWidget.LineCharOffset[2]); //line3.LineHeight = currentWidget.LineCharOffset[2] } if (lines.Length > 3) { selectTextRichDisplay(lines[0].Length + lines[1].Length + lines[2].Length + 3, lines[3].Length); line4.FontSize = currentWidget.LineSize[3]; line4.Margin = new Thickness(0, 0, 0, currentWidget.LineCharOffset[3]); } if (currentWidget.ActiveParam() != null) { var activeParams = currentWidget.GetActiveParamsBy(); foreach (var param in activeParams) { if (param.X == 1) { selectActiveParam(param, line1); } if (param.X == 2) { selectActiveParam(param, line2); } if (param.X == 3) { selectActiveParam(param, line3); } if (param.X == 4) { selectActiveParam(param, line4); } } } }
private void WidgetTextToRichText(Widget currWidget) { if (radioStation.IsOff()) { richDispley.Clear(); timer1.Stop(); return; } if (currWidget.MoveTo != null) { currentWidget = currWidget.MoveTo; if (currentWidget.MoveTo != null) { currentWidget.MoveTo = null; } } currentWidget.Update(); var lines = currentWidget.ToLines(); richDispley.Lines = lines; if (lines.Length > 0) { richDispley.Select(0, lines[0].Length); richDispley.SelectionFont = new Font(displayFonts.Families[0], currentWidget.LineSize[0], FontStyle.Regular); richDispley.SelectionCharOffset = currentWidget.LineCharOffset[0]; } if (lines.Length > 1) { richDispley.Select(lines[0].Length + 1, lines[1].Length); richDispley.SelectionFont = new Font(displayFonts.Families[0], currentWidget.LineSize[1], FontStyle.Regular); richDispley.SelectionCharOffset = currentWidget.LineCharOffset[1]; } if (lines.Length > 2) { richDispley.Select(lines[0].Length + lines[1].Length + 2, lines[2].Length); richDispley.SelectionFont = new Font(displayFonts.Families[0], currentWidget.LineSize[2], FontStyle.Regular); richDispley.SelectionCharOffset = currentWidget.LineCharOffset[2]; } if (lines.Length > 3) { richDispley.Select(lines[0].Length + lines[1].Length + lines[2].Length + 3, lines[3].Length); richDispley.SelectionFont = new Font(displayFonts.Families[0], currentWidget.LineSize[3], FontStyle.Regular); } if (currentWidget.ActiveParam() != null) { var activeParams = currentWidget.GetActiveParamsBy(); foreach (var param in activeParams) { var activeParam = param; var pText = activeParam.Text; var index = richDispley.Lines[activeParam.X - 1].IndexOf(pText, StringComparison.Ordinal); for (var i = 0; i < richDispley.Lines.Length && i < activeParam.X - 1; i++) { index += richDispley.Lines[i].Length + 1; } index += activeParam.ActiveFrom; richDispley.Select(index, activeParam.ActiveTo); richDispley.SelectionBackColor = Color.Black; richDispley.SelectionColor = displayTextColor; } } //richDispley.Select(0, 10); //Clipboard.SetImage(Properties.Resources.text_image); ////if (richDispley.CanPaste(DataFormats.GetFormat(DataFormats.Bitmap))) //{ // richDispley.Paste(); //} }