Wpf 如何使用IValueConverter添加工具提示

Wpf 如何使用IValueConverter添加工具提示,wpf,xaml,ivalueconverter,Wpf,Xaml,Ivalueconverter,我正在寻找一个解决方案,添加一个按钮使用值转换器的工具提示。 这是因为此工具提示的某些部分/文本是动态计算的 例如,我有一个应用程序,其中包含一些“可启动”任务,单击其中任何/所有任务都会启动另一个应用程序。 在此任务列表中,有一个按钮“启动任务”,其计数取决于选择启动的任务数。我只需要显示此按钮的工具提示。例如: “启动任务(2)”,这适用于所选的两个任务 有人能帮我写一个转换器,然后用XAML绑定吗 更新: 早些时候,它类似于下面的内容,但问题是显示的工具提示不符合标准,并且不清晰可见,所以

我正在寻找一个解决方案,添加一个按钮使用值转换器的工具提示。 这是因为此工具提示的某些部分/文本是动态计算的

例如,我有一个应用程序,其中包含一些“可启动”任务,单击其中任何/所有任务都会启动另一个应用程序。 在此任务列表中,有一个按钮“启动任务”,其计数取决于选择启动的任务数。我只需要显示此按钮的工具提示。例如: “启动任务(2)”,这适用于所选的两个任务

有人能帮我写一个转换器,然后用XAML绑定吗

更新:

早些时候,它类似于下面的内容,但问题是显示的工具提示不符合标准,并且不清晰可见,所以我考虑删除相同的,并使用了转换器

<ToolTipService.ToolTip>
                            <ToolTip>
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock x:Name="ttlblActivityCount" Text="{Binding LaunchTaskButtonTitle, Source={StaticResource ResourceData}}" />
                                    <TextBlock x:Name="ttlblActivityCountStart"
                                               Margin="2,0,0,0"
                                               Text="("/>
                                    <TextBlock x:Name="tttxtActivityCount" Text="{Binding Path=SelectedActivitiesCount}"/>
                                    <TextBlock x:Name="ttlblActivityCountEnd"
                                               FontWeight="Bold"
                                               Text=")" />
                                </StackPanel>
                            </ToolTip>
                        </ToolTipService.ToolTip>

使用
StackPanel
人工组合字符串是的,这几乎是您不想做的事情。但是,您不必为此使用
IValueConverter

如果您有一个用于
SelectedActivitiesCount
的属性,并且希望将它的工具提示与一些静态文本和属性绑定,那么一个简单的示例可以是:

<Button Content="Launch Tasks">
  <Button.ToolTip>
    <TextBlock Text="{Binding SelectedActivitiesCount, StringFormat=Launch Tasks({0})}" />
  </Button.ToolTip>
</Button>
^^此输出类似于:“启动任务(2)”,其中
SelectedActivitiesCount
->2,
LaunchTaskButtonTitle
->启动任务


选择适合您的方法。

您是否必须使用
IValueConverter
?如果“count”值是一个属性,则在您的
按钮中。工具提示
仅具有
StringFormat
,其中包含静态文本和count属性,格式为您希望的格式。请查看我添加的更新。感谢Viv的快速响应。我尝试了您刚才发布的两种解决方案,但不幸的是,显示的工具提示与前面的相同,我的意思是块太小,很难阅读文本。@Sandeep它对我来说很好(如果你愿意,我可以上传一个示例),但我不确定你说的“块太小”是什么意思。如果太小,请增加字体大小或添加装饰物或其他东西来放大。Viv,很遗憾,我无法上传屏幕截图来显示。有什么方法可以做到吗?你说“装饰物”很抱歉,但我不知道这一点?或者有什么方法可以放大它?@Sandeep adorner只是一个装饰者。如果您只想让文本变大,只需在
的答案中更改
,即可获得更大的文本。这就是你想要的吗?
<Button Content="Launch Tasks">
  <Button.ToolTip>
    <TextBlock>
      <TextBlock.Text>
        <MultiBinding StringFormat="{}{0} ({1})">
          <Binding Path="LaunchTaskButtonTitle" Source="{StaticResource ResourceData}" />
          <Binding Path="SelectedActivitiesCount" />
        </MultiBinding>
      </TextBlock.Text>
    </TextBlock>
  </Button.ToolTip>
</Button>