Fabian Cancellara has won the Strade Bianche for the third time in his final season before retirement.