我试图在工具提示中显示一些文字。我在互联网上搜索一些解决方案,但它不起作用:
XAML:
<TextBlock x:Name="ResultText">
<TextBlock.ToolTip>
<TextBlock x:Name="ResultToolTip" />
</TextBlock.ToolTip>
</TextBlock>
代码:
BindingOperations.SetBinding(ResultText, TextBlock.TextProperty, new Binding("MyPath")
{
Source = myObject,
StringFormat = "MyFormat"
});
BindingOperations.SetBinding(ResultToolTip, TextBlock.TextProperty, new Binding("MyPath")
{
Source = myObject,
StringFormat = "MyFormat"
});
此方法适用于普通TextBlock
,但对于工具提示,它类似于:
答案 0 :(得分:0)
它应该以这种方式工作(考虑是否需要MyPath
的更改通知,MyObject
类应该继承自INotifyPropertyChanged
接口)
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
MyObject myObject = new MyObject { MyPath = "value" };
BindingOperations.SetBinding(ResultText, TextBlock.TextProperty, new Binding("MyPath")
{
Source = myObject,
StringFormat = "MyFormat"
});
BindingOperations.SetBinding(ResultToolTip, TextBlock.TextProperty, new Binding("MyPath")
{
Source = myObject,
StringFormat = "MyFormat"
});
}
}
class MyObject
{
private string _myPath;
public string MyPath
{
get { return _myPath; }
set { _myPath = value; }
}
}
答案 1 :(得分:0)
不完全确定这是否是可接受的答案,但您通常应该使用XAML中的绑定,如下所示:
<TextBlock x:Name="ResultText" Text="{Binding Source=TextBlockText}">
<TextBlock.ToolTip>
<TextBlock x:Name="ResultToolTip" Text="{Binding Source=TooltipText}"/>
</TextBlock.ToolTip>
</TextBlock>
然后在C#代码中创建两个属性,即使用INotifyPropertyChanged
接口功能。
你可以有理由不这样做