3

我一直在尝试功能区控件并遇到了一个可能的错误(或者我可能做错了什么)。如果我有一个RibbonTextBoxRibbonTab并且在后面的代码中将isEnabled设置为FalseTrue,我只能将其设置为 false 而不能设置为 true。其余RibbonTextBox被禁用。

/* in my XAML */
<ribbon:RibbonTextBox x:Name="rtb" Label="Button1" />

/* in my code behind */
rtb.IsEnabled = false;  // RibbonTextBox is disabled and grayed out
... some other code ...
rtb.IsEnabled = true;   // RibbonTextBox remain disabled and grayed out
4

2 回答 2

5

显然,这是一个已知问题

RibbonTextBox IsEnabled 属性始终为 false

该链接还提供了一种可能的解决方法
更新:我自己尝试了这种解决方法,它确实有效

public class FixedRibbonTextBox : RibbonTextBox
{
    protected override bool IsEnabledCore
    {
        get { return true; }
    }
}
于 2011-07-30T13:51:06.413 回答
1

我也尝试过这种解决方法,但遇到了问题。

在 xaml 中,我可以毫无问题地设置和定义 RibbonTextBox 的某些属性。我可以运行代码,文本框显示在屏幕上但未启用。

如果我在 MainWindow.xaml.cs 中包含解决方法代码,则会收到错误“找不到类型或命名空间名称‘RibbonTextBox’”。

  1. 我必须在哪里包含代码( MainWindow.xaml.cs ?)。

  2. 命名空间 system.windows.controls.ribbon 是未知的。哪个 dll 必须设置为引用(在引用中找不到 System.Windows.Controls.Ribbon)?我想我必须使用这个命名空间来获取ribbontextbox。我使用 VS2010 express c#。

于 2012-12-09T20:06:14.750 回答