如何以编程方式在功能区按钮上设置文本?现在我有下面的代码,但按钮不显示'浏览'。有什么建议吗?
RibbonButton btn = new RibbonButton();
btn.Name = "btnBrowse";
btn.Content = "Browse";
btn.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
btn.Click += new RoutedEventHandler(btn_Click);
答案 0 :(得分: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 );
您必须为CanExecute指定true,否则将始终禁用命令/按钮。 CanExecute方法可以让您的业务逻辑禁用或启用命令/按钮。
答案 1 :(得分: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。如果文本将在运行时更改,则数据绑定按钮的文本。