void AddressCombobox_GotFocus(object sender, System.Windows.RoutedEventArgs e) { if (_dropdown == null) { _dropdown = new Popup(); _dropdown.AllowsTransparency = true; _dropdown.MouseLeave += _dropdown_MouseLeave; _dropdown.MouseEnter += _dropdown_MouseEnter; var addrpop = new AddressPopup(); addrpop.Effect = new DropShadowEffect { ShadowDepth = 3 }; addrpop.SelectedCallback = (v) => { _dropdown.IsOpen = false; this.Text = v; this.ToolTip = AddressConverter.AddressCodeToAddress(v); }; _dropdown.Child = addrpop; } var ele = sender as FrameworkElement; var pos = ele.PointToScreen(new Point(0, this.ActualHeight)); _dropdown.VerticalOffset = pos.Y; _dropdown.HorizontalOffset = pos.X; _dropdown.IsOpen = true; }