private void InitializeDropDown() { _dropDownContent = ResultsBoxTemplate.LoadContent() as FrameworkElement; _dropDown = new PopupAdorner(_searchTextBox, _dropDownContent); _resultsItemControl = _dropDownContent.FindName("PART_ResultsItemControl") as ItemsControl; _dropDownContent.SetBinding(FrameworkElement.DataContextProperty, new Binding("DataContext") { Source = this }); _dropDownContent.AddHandler(ResultItem.ResultItemSelectedEvent, new RoutedEventHandler(OnResultItemSelected)); _dropDownContent.AddHandler(ResultItem.ResultItemClickedEvent, new RoutedEventHandler(OnResultItemClicked)); _dropDownContent.MouseDown += PopupContent_MouseDown; }
internal PopupResizer(Popup popup, FrameworkElement controlledElement, Style previewStyle) { this.ControlledElement = controlledElement; this.Popup = popup; this.PopupResizePreviewStyle = previewStyle; IsResizing = false; Adorner = null; this.Cursor = (popup.Child as FrameworkElement).Cursor; PresentationSource source = HwndSource.FromVisual(popup); topMost = source.RootVisual; SetMouseEvents(); }
internal void StartResize(Window sender) { // damn!!!! // I'm forced to use two separated adorners // to have it displayed over the popup child // and to have it also outside of the child contorl // if you know a better way to do this // please post a discussion on navigationpane.codeplex.com AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(Popup); if (adornerLayer != null) { Adorner = new PopupAdorner(Popup, Popup.Placement, PopupResizePreviewStyle); adornerLayer.Add(Adorner); } adornerLayer = AdornerLayer.GetAdornerLayer(Popup.Child); if (adornerLayer != null) { ChildAdorner = new PopupAdorner(Popup.Child, Popup.Placement, PopupResizePreviewStyle); adornerLayer.Add(ChildAdorner); } FrameworkElement child = Popup.Child as FrameworkElement; FrameworkElement e = topMost as FrameworkElement; if (e != null) { e.Cursor = System.Windows.Input.Cursors.SizeWE; } child.Cursor = System.Windows.Input.Cursors.SizeWE; IsResizing = true; }
internal void StartResize(Window sender) { // damn!!!! // I'm forced to use two separated adorners // to have it displayed over the popup child // and to have it also outside of the child contorl // if you know a better way to do this // please post a discussion on navigationpane.codeplex.com AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(Popup); if (adornerLayer != null) { Adorner = new PopupAdorner(Popup, Popup.Placement, PopupResizePreviewStyle); adornerLayer.Add(Adorner); } adornerLayer = AdornerLayer.GetAdornerLayer(Popup.Child); if (adornerLayer != null) { ChildAdorner = new PopupAdorner(Popup.Child, Popup.Placement, PopupResizePreviewStyle); adornerLayer.Add(ChildAdorner); } FrameworkElement child = Popup.Child as FrameworkElement; FrameworkElement e = topMost as FrameworkElement; if(e != null) e.Cursor = System.Windows.Input.Cursors.SizeWE; child.Cursor = System.Windows.Input.Cursors.SizeWE; IsResizing = true; }