将FrameworkElement.ToolTip强制转换为System.Windows.Controls.ToolTip时出现InvalidCastException

时间:2011-09-27 16:52:38

标签: wpf tooltip .net

我需要以编程方式对ToolTip进行一些更改。这听起来很简单。好吧,显然不是真的。 :/

我在ToolTip对象上有一个WindowsFormsHost,我进行了以下转换以转到IsOpen属性:

((System.Windows.Controls.ToolTip)host.ToolTip).IsOpen = true;

此行在运行时期间因InvalidCastException而失败。

  

无法将“System.String”类型的对象强制转换为类型   'System.Windows.Controls.ToolTip'。

我不明白为什么会失败。我必须遗漏一些非常简单的事情,因为这段代码显然在this示例中工作得很好。 @ _ @

1 个答案:

答案 0 :(得分:3)

ToolTip不是偶然的object类型,而不是ToolTip。如果您在XAML中设置ToolTip,就像这样ToolTip="Test",那么您的工具提示是String类型。看看this。要修改工具提示,我建议不要直接在代码中使用它,而是使用XAML和DataBinding的强大功能。如果您坚持在代码中执行此操作,请为该属性创建一个实际的工具提示。