// Set popup bindings static void CreatePopupRoot(RibbonPopup popup, UIElement child) { Binding binding = new Binding("PlacementTarget"); binding.Mode = BindingMode.OneWay; binding.Source = child; popup.SetBinding(Popup.PlacementTargetProperty, binding); binding = new Binding("VerticalOffset"); binding.Mode = BindingMode.OneWay; binding.Source = child; popup.SetBinding(Popup.VerticalOffsetProperty, binding); binding = new Binding("HorizontalOffset"); binding.Mode = BindingMode.OneWay; binding.Source = child; popup.SetBinding(Popup.HorizontalOffsetProperty, binding); binding = new Binding("PlacementRectangle"); binding.Mode = BindingMode.OneWay; binding.Source = child; popup.SetBinding(Popup.PlacementRectangleProperty, binding); binding = new Binding("Placement"); binding.Mode = BindingMode.OneWay; binding.Source = child; popup.SetBinding(Popup.PlacementProperty, binding); binding = new Binding("StaysOpen"); binding.Mode = BindingMode.OneWay; binding.Source = child; popup.SetBinding(Popup.StaysOpenProperty, binding); binding = new Binding("CustomPopupPlacementCallback"); binding.Mode = BindingMode.OneWay; binding.Source = child; popup.SetBinding(Popup.CustomPopupPlacementCallbackProperty, binding); binding = new Binding("IsOpen"); binding.Mode = BindingMode.TwoWay; binding.Source = child; popup.SetBinding(Popup.IsOpenProperty, binding); }