The 24-year-old defenseman, who had 11 points (one goal, 10 assists) in 68 games with the Canucks last season, avoided an arbitration hearing scheduled for July 29.
"Troy Stecher is an important part of our team," Canucks general manager Jim Benning said. "He's a talented two-way defenseman who competes every shift. Troy has a willingness to always improve his game and is an example of young player committed to being a professional."
Signed by Vancouver on April 13, 2016, Stecher has 35 points (four goals, 31 assists) in 139 NHL games. He had NHL career highs in goals (three), assists (21) and points (24) in 2016-17.