The control is misplaced when you zoom in/out the browser window. To work this around you can manually calculate and set the top and left positions of the HTML presenter. this.htmlPlaceholder.Loaded += (sender, args) => { this.htmlPlaceholder.LayoutUpdated += htmlPlaceholder_LayoutUpdated; }; private void htmlPlaceholder_LayoutUpdated(object sender, EventArgs e) { this.Dispatcher.BeginInvoke(delegate { double controlTop = GetTop(); double controlLeft = GetLeft(); htmlPlaceholder.HtmlPresenter.SetStyleAttribute("top", controlTop + "px"); htmlPlaceholder.HtmlPresenter.SetStyleAttribute("left", controlLeft + "px"); }); }