The gunman who killed Russian ambassador was a police officer the Turkish Interior Minister has confirmed.
It is not yet clear if was he was on duty when he carried out the attack, a Turkish security source is reporting.
However, two sources have told Reuters that the man was an officer who worked in the Turkish capital.
Turkish police fatally shot the gunman after the attack, NTV reported.
The attacker also smashed several of the photos which were part of the exhibition.
There was panic as people ran for cover after the shots were fired, with three other people reportedly wounded in the attack.
Ms Zakharova said Mr Karlov was shot "when an unidentified assailant opened chaotic gunfire during a public event in Ankara".
She later confirmed the ambassador had died, adding that Russia was in contact with Turkish officials about the incident.
Ankara mayor Melih Gokcek told reporters outside the exhibition centre that the "heinous" attack had aimed to disrupt newly-re-established relations between Turkey and Russia.
US state department spokesman John Kirby said US officials are aware of reports about the shooting.
"We condemn this act of violence, whatever its source," Mr Kirby said. "Our thoughts and prayers are with him and his family."