Eto: [WPF] RichTextArea рдЪрдпрди рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 4 рдЕрдХреНрддреВре░ 2018  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: picoe/Eto

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реАрдорд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЪрдпрдирд┐рдд рдкрд╛рдаред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

рджрд╛рдИрдВ рдУрд░ 5 рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЧрд▓рдд рд╕реНрдерд╛рди рд╣реИред

рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо

  1. RichTextArea рдирд┐рдпрдВрддреНрд░рдг рдмрдирд╛рдПрдВ
  2. рдХреБрдЫ рдкрд╛рда рдЗрдирдкреБрдЯ рдХрд░реЗрдВ
  3. рд░рдВрдЧ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдпрди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ

рдХреЛрдб рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ

rtfcontrol.Appen(initialtext, true);
rtfcontrol.Append(sometext, true);
rtfcontrol.Selection = new Range<int>(rtfcontrol.Text.Length - sometext.Length, rtfcontrol.Text.Length -1);
rtfcontrol.SelectionForeground = Colors.Blue;
rtfcontrol.Append("\n", true);
rtfcontrol.Selection = new Range<int>(rtfcontrol.Text.Length);

рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╡рд░рдг

  • рд╕рдВрд╕реНрдХрд░рдг: 2.5.0-рд╕реАрдЖрдИ-10013
  • рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо (рдУрдВ): рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл
  • рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо (рдУрдВ): рд╡рд┐рдВрдбреЛрдЬ 10

рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл:

wpf

GTK2 (рд▓рд┐рдирдХреНрд╕):

gtk2_linux

рдЬрд╝рд╛рдорд░реАрди.рдореИрдХ:

xamarin mac

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@DanWBR , рдЖрд╣ рд╣рд╛рдБ рдЬреЛ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ - Text рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдирдИ рд▓рд╛рдЗрди рдЬреЛрдбрд╝рддрд╛ рд╣реИ (рднрд▓реЗ рд╣реА рдЖрдкрдХреЗ рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рдпрд╣ рд╣реЛ рдпрд╛ рдирд╣реАрдВ)ред рдореБрдЭреЗ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рд╕реЗ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИред

рдореИрдВ рдЬреЛ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рд╡рд╣ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдПрдХ рдЪрд░ рдореЗрдВ рд░рдЦрдирд╛ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдмрдврд╝рд╛рдирд╛ рд╣реИред рдХреЗрд╡рд▓ рд▓рдВрдмрд╛рдИ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдмрд╛рд░ Text рд╕рдВрдкрддреНрддрд┐ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдкрд╛рда рдХреЗ рдмрдбрд╝реЗ рд╣реЛрдиреЗ рдкрд░ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рд╕рднреА 7 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░, рд▓рд╛рдЗрди рдПрдВрдбрд┐рдВрдЧ рдХреИрд░реЗрдХреНрдЯрд░ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЪрдпрди рдХреЗ рд▓рд┐рдП рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдирд╣реАрдВ рдЧрд┐рдиреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддрд╛ рд╣реВрдВ:

private void Write(string message, Color c)
        {
            Append(message + Environment.NewLine, true);

            int idx = -1, last = -1;
            if (Environment.OSVersion.Platform == PlatformID.Unix)
            {
                idx = Text.LastIndexOf(message);
                last = Text.Length;
            }
            else
            {
                var lines = string.Join("", Text.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries));
                idx = lines.LastIndexOf(message);
                last = lines.Length;
            }

            if (idx == -1)
                return;

            Selection = new Range<int>(idx, idx + message.Length);
            SelectionForeground = c;
            Selection = new Range<int>(last, last);
        }

рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмрдЧ рд╣реИ ...

рд╣рд╛рдБ, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ @ManuelHu рдХреЗ рд╕рдорд╛рди рд╣реИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдЕрднреА рддрдХ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдмрдбрд╝реЗ рдкрд╛рда рдХреЗ рд╕рд╛рде рдХреБрддреНрддреЗ рдХреЛ рдзреАрдорд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

рд╕рдорд╕реНрдпрд╛ рдХреА рд╕реВрдЪрдирд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдЕрд░реЗ @DanWBR ,

рдпрд╣ рдирд╡реАрдирддрдо рд╡рд┐рдХрд╕рд┐рдд рд╢рд╛рдЦрд╛ рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ? рд╕рднреА рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЕрдм рдиреНрдпреВрд▓рд╛рдЗрдиреНрд╕ рдХреЛ рдПрдХрд▓ \n рдХреИрд░реЗрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рд╛рдп @cwensley , рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдПрдХ рдЪрд░рд┐рддреНрд░ рдмрд╛рдХреА рд╣реИ:

captura de tela 2018-11-16 as 08 06 39

рдЕрд░реЗ @DanWBR , рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЗрд╢реНрдпреВ рд╕реЗ рдСрдл рдХреЗ рд▓рд┐рдП

https://github.com/DanWBR/dwsim5/blob/windows/DWSIM.UI.Desktop.Forms/Forms/Flowsheet/Flowsheet.eto.cs#L1245

рд╢рд╛рдпрдж рдореИрдВ рдЧрд▓рдд рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ? рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ macOS рдФрд░ GTK рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@DanWBR , рдЖрд╣ рд╣рд╛рдБ рдЬреЛ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ - Text рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдирдИ рд▓рд╛рдЗрди рдЬреЛрдбрд╝рддрд╛ рд╣реИ (рднрд▓реЗ рд╣реА рдЖрдкрдХреЗ рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рдпрд╣ рд╣реЛ рдпрд╛ рдирд╣реАрдВ)ред рдореБрдЭреЗ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рд╕реЗ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИред

рдореИрдВ рдЬреЛ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рд╡рд╣ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдПрдХ рдЪрд░ рдореЗрдВ рд░рдЦрдирд╛ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдмрдврд╝рд╛рдирд╛ рд╣реИред рдХреЗрд╡рд▓ рд▓рдВрдмрд╛рдИ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдмрд╛рд░ Text рд╕рдВрдкрддреНрддрд┐ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдкрд╛рда рдХреЗ рдмрдбрд╝реЗ рд╣реЛрдиреЗ рдкрд░ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Sanae6 picture Sanae6  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jzlhll picture jzlhll  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Serg-Norseman picture Serg-Norseman  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rothomp3 picture rothomp3  ┬╖  15рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

canton7 picture canton7  ┬╖  22рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ