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

Wpf 将FrameworkElement.ToolTip强制转换为System.Windows.Controls.ToolTip时出现InvalidCastException,wpf,tooltip,.net,Wpf,Tooltip,.net,我需要以编程方式对工具提示进行一些更改。听起来很简单。嗯,显然不是真的/ 我在WindowsFormsHost对象上有一个ToolTip,我进行以下转换以获得IsOpen属性: ((System.Windows.Controls.ToolTip)host.ToolTip).IsOpen = true; 此行在运行时失败,出现InvalidCastException 无法将“System.String”类型的对象强制转换为 “System.Windows.Controls.ToolTip” 我不

我需要以编程方式对工具提示进行一些更改。听起来很简单。嗯,显然不是真的/

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

((System.Windows.Controls.ToolTip)host.ToolTip).IsOpen = true;
此行在运行时失败,出现
InvalidCastException

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


我不明白这为什么会失败。我一定错过了一些非常简单的东西,因为这段代码在示例中显然工作得很好@_@

工具提示
不是偶然的
对象类型
,也不是
工具提示
。如果您在XAML中像这样设置
ToolTip=“Test”
工具提示,那么您的工具提示是字符串类型。看一看。要修改工具提示,我建议不要直接在代码中使用它,而是使用XAML和数据绑定的强大功能。如果坚持使用代码,请为属性创建一个实际的工具提示。

工具提示
不是类型
对象的意外,也不是
工具提示
。如果您在XAML中像这样设置
ToolTip=“Test”
工具提示,那么您的工具提示是字符串类型。看一看。要修改工具提示,我建议不要直接在代码中使用它,而是使用XAML和数据绑定的强大功能。如果您坚持用代码执行,请为属性创建一个实际的工具提示。

我希望可以利用数据绑定,但在这种情况下,它不会起作用(谢谢你的回答!我希望我能利用数据绑定,但在这种情况下它不会起作用。)(谢谢你的回答!