1

如何以编程方式在 RibbonButton 上设置文本?现在我有下面的代码,但按钮不显示“浏览”。有什么建议么?

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

2 回答 2

4

RibbonControlsLibrary 中的 RibbonButtons 的行为与标准 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 方法也可以让您的业务逻辑禁用或启用命令/按钮。

于 2010-04-01T17:43:47.963 回答
1

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 中构建您的 UI。如果文本在运行时会发生变化,请对按钮的文本进行数据绑定。

于 2010-04-01T15:04:25.367 回答