WPF RibbonButton - PullRequest
       21

WPF RibbonButton

1 голос
/ 01 апреля 2010

Как я могу программно установить текст на RibbonButton? Прямо сейчас у меня есть код ниже, но кнопка не отображает «Обзор». Есть предложения?

RibbonButton btn = new RibbonButton();
btn.Name = "btnBrowse";
btn.Content = "Browse";
btn.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
btn.Click += new RoutedEventHandler(btn_Click);

Ответы [ 2 ]

4 голосов
/ 01 апреля 2010

RibbonButtons из RibbonControlsLibrary ведут себя иначе, чем стандартные кнопки WPF и нуждаются в команде для отображения текста. Команда, где вы также назначаете изображения и другие элементы, такие как подсказки.

var cmd = new RibbonCommand();
cmd.LabelTitle = "Browse";
cmd.CanExecute += ( sender, args ) => args.CanExecute = true;
cmd.Executed +=new ExecutedRoutedEventHandler(cmd_Executed);

var btn = new RibbonButton();
btn.Command = cmd;

MyRibbonGroup.Controls.Add( btn );

Вы должны присвоить true для CanExecute, в противном случае команда / кнопка всегда будут отключены. Метод CanExecute может также отключить или включить вашу бизнес-логику для команды / кнопки.

1 голос
/ 01 апреля 2010

Кнопки WPF - это контейнеры, как и все остальное в WPF. Создайте TextBlock и установите его в качестве содержимого вашей кнопки:

RibbonButton btn = new RibbonButton(); 
btn.Name = "btnBrowse"; 
TextBlock btnText = new TextBlock();
btnText.Text = "Browse";
btn.Content = btnText; 
btn.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; 
btn.Click += new RoutedEventHandler(btn_Click);

Тем не менее я настоятельно рекомендую вам рассмотреть возможность создания своего пользовательского интерфейса в XAML. Если текст изменится во время выполнения, введите данные в текст кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...