Ivan, bom dia!
O que vc pode fazer é criar um novo controle ou user control onde este canvas seja o container para as linhas desenhadas, nesta nova classe vc pode utilizar Attached Properties para marcar o ponto inicial de clique do mouse,por exemplo, e tratar o
avanço da linha no evento Mouse Move.
Os argumentos de evento do Mouse disponibiliza métodos que é possível vc pegar a coordenada (X,Y) do Mouse em relação a determinado objeto.
Por exemplo:
e.GetPosition(canvas); //Pega o ponto onde está o mouse em relação ao seu canvas, tendo como ponto de partida o ponto superior esquerdo do canvas (se eu não me engano rsrs)
Talvez a classe Vector ajude nos seus cálculos também.
Allan Tavares - Desenvolvedor Pleno - Spread Systems/Banco do Brasil