コード例 #1
0
        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);
                    }
                }
            }
        }
コード例 #2
0
        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();
            //}
        }