The 29-year-old Austria international has left Schalke after the end of his contract and will officially become a Foxes player on 1 July.
"It was always a goal for me to play in the Premier League, and I'm happy that this dream has come true," said Fuchs.
"Leicester City is a new experience and new challenge for me."
Fuchs, who plays at left-back, has 66 caps for his Austria and made 99 league appearances for Schalke before moving to England.
He has Champions League experience and has scored three times in the competition, including a goal in Schalke's 4-3 win over Real Madrid at the Bernabeu in March.
Leicester won seven of their last nine league games of the 2014-15 campaign to move clear of relegation danger and maintain their Premier League status, eventually finishing in 14th place.
Leicester City have made their first signing of the summer with the free-transfer capture of defender Christian Fuchs on a three-year deal.