Tenes un error en el codigo en la linea:
Código C#:
Ver originalprivate void Recepcion(object sender, SerialDataReceivedEventHandler e)
En primer lugar, el event handler que declara la clase System.IO.Port.SerialPort para el evento DataRecieved tiene la siguiente firma:
Código C#:
Ver originalpublic delegate void SerialDataReceivedEventHandler(object sender, SerialDataReceivedEventArgs e);
Con lo cual el segundo argumento "e" es de tipo SerialDataReceivedEventArgs y no SerialDataReceivedEventHandler como lo estas declarando en tu codigo. Tenes que cambiar la firma del metodo Recepcion por lo siguiente:
Código C#:
Ver originalprivate void Recepcion(object sender, SerialDataReceivedEventArgs e)
En segundo lugar, C# infiere automaticamente los delegados al usar +=, con lo cual utilizar new y el tipo de delegado es absolutamente innecesario y redundante. Te sugiero que cambies esto:
Código C#:
Ver originalserialPort1.DataReceived += new SerialDataReceivedEventHandler(Recepcion);
Por esto:
Código C#:
Ver originalserialPort1.DataReceived += Recepcion;
----------------------------------------
Adicionalmente y como te mencioné en un post anterior, el RichTextBox de WPF no es simplemente un "control para mostrar texto", es un editor de FlowDocuments, si lo que quieres es mostrar texto en varios colores y formatos, sin que el usuario pueda editarlo (read only), con un simple TextBlock te alcanza.
Por ultimo, estas mezclando el codigo de presentation (UI) con el codigo de IO (SerialPort) que no tienen nada que ver. Te sugiero (nuevamente) que investigues acerca de DataBinding y como hacer las cosas de manera correcta en WPF y en general.