WPF-带多绑定的工具提示
本文关键字:工具提示 绑定 WPF- | 更新日期: 2023-09-27 18:28:30
我想在文本块内制作一个带有多绑定的工具提示,但无论我尝试什么都不起作用。
以下是我迄今为止所尝试的:
<TextBlock Text="{Binding Description, StringFormat='Description : {0}{}'}">
<ToolTipService.ToolTip>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="Description : {0}{1}{}">
<Binding Path="FirstDescription" />
<Binding Path="SecondDescription" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</ToolTipService.ToolTip>
</TextBlock>
但当我尝试它时,我在工具提示上看到的是:System.Windows.Controls.TextBlock.
当我在没有工具提示服务的情况下尝试它时,只有工具提示,比如:
<TextBlock Text="{Binding Description, StringFormat='Description : {0}{}'}">
<ToolTip>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="Description : {0}{1}{}">
<Binding Path="FirstDescription" />
<Binding Path="SecondDescription" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</ToolTip>
</TextBlock>
屏幕卡住了。
我不知道你使用的是哪个VS版本,但:
<TextBlock Text="{Binding Description, StringFormat="Description : {0}{}"}">
甚至不为我编译。
只需删除"和类似的空括号:
<TextBlock Text="{Binding Description, StringFormat=Description : {0}">
如果你想要":",你也可以这样写
<TextBlock>
<TextBlock.Text>
<Binding Path="Description" StringFormat="Description : {0}" />
</TextBlock.Text>
<ToolTipService.ToolTip>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="Description : {0}{1}">
<Binding Path="FirstDescription" />
<Binding Path="SecondDescription" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</ToolTipService.ToolTip>
</TextBlock>
我尝试了以下代码,效果很好:
<TextBlock Margin="20" Foreground="Black" FontSize="20" FontFamily="Century Gothic" Text="{Binding Name1}">
<TextBlock.ToolTip>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="MultiBinded Tooltip : {0}{1}">
<Binding Path="Name1"/>
<Binding Path="Name2"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</TextBlock.ToolTip>
</TextBlock>
只需删除空括号。下一个代码工作如预期:
<TextBlock Text="{Binding Description, StringFormat='Description : {0}'}">
<ToolTipService.ToolTip>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="Description : {0}{1}">
<Binding Path="FirstDescription" />
<Binding Path="SecondDescription" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</ToolTipService.ToolTip>
</TextBlock>
如果StringFormat以左大括号{开始,XAML语法分析器要求您使用一对大括号对其进行转义{}。否则,解析器会感到困惑,因为标记扩展的语法中也使用了大括号。
在{}转义序列/标记扩展的XAML文档中可以找到详细信息。
此外,您不能在内联绑定中使用双引号,但可以使用单引号。