public void CreateControl(out FrameworkElement control) { var buttonReferenceControl = new AutomatonButtonReference() { Button = ButtonRef }; var labelWithButton = new LabelWithButton() { Button = buttonReferenceControl }; var textControl = new FormattedTextBlock() { Content = Text, HorizontalAlignment = HorizontalAlignment.Center, }; var stackPanel = new StackPanel { Orientation = Orientation.Horizontal, HorizontalAlignment = HorizontalAlignment.Center, Margin = new Thickness(0, 1, 0, 1), }; stackPanel.Children.Add(labelWithButton); stackPanel.Children.Add(textControl); control = stackPanel; }
public static void AddHUDButton(Menu menu, string img_off, string img_on, string label, IButtonReference buttonRef) { var hudButtons = FindVisualChildren <HUDButton>(Api.Client.UI.LayoutRoot); if (hudButtons?.Count() > 0) { if (hudButtons.Last().Parent is StackPanel stackPanel) { var newHUDButton = new HUDButton(); ImageBrush normalBrush = new ImageBrush(); BindingOperations.SetBinding(normalBrush, ImageBrush.ImageSourceProperty, new Binding() { Source = img_off }); newHUDButton.BrushNormal = normalBrush; ImageBrush highlightedBrush = new ImageBrush(); BindingOperations.SetBinding(highlightedBrush, ImageBrush.ImageSourceProperty, new Binding() { Source = img_on }); newHUDButton.BrushHighlighted = highlightedBrush; var labelWithButton = new LabelWithButton() { Content = label }; labelWithButton.Button = buttonRef; newHUDButton.SetBinding(ToolTipServiceExtend.ToolTipProperty, new Binding() { Source = labelWithButton }); newHUDButton.SetBinding(HUDButton.CommandProperty, new Binding("CommandToggle")); newHUDButton.SetBinding(HUDButton.IsSelectedProperty, new Binding("IsSelected")); newHUDButton.DataContext = menu; stackPanel.Children.Add(newHUDButton); } else { Api.Logger.Error("CNEI: HUD buttons parent is not StackPanel."); } } else { Api.Logger.Error("CNEI: HUD buttons not found."); } }