我正在寻找使用值转换器为按钮添加工具提示的解决方案。 这是因为此工具提示的某些部分/文本是动态计算的。
例如,我有一个应用程序与一些"可启动"其中的任务以点击任何/所有这些任务的方式启动另一个应用程序。 在此任务列表中,有一个按钮"启动任务"数量取决于数量。选择启动的任务。我只需要显示此按钮的工具提示。就像: "启动任务(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>
答案 0 :(得分:1)
使用StackPanel
人工组合一个字符串是你不想做的事情。但是,您没有为此
IValueConverter
如果你有SelectedActivitiesCount
的属性,并且想要将它的工具提示与一些静态文本和属性绑定,那么一个简单的例子可能是:
<Button Content="Launch Tasks">
<Button.ToolTip>
<TextBlock Text="{Binding SelectedActivitiesCount, StringFormat=Launch Tasks({0})}" />
</Button.ToolTip>
</Button>
^^使用此输出看起来像:“启动任务(2)”其中SelectedActivitiesCount
- &gt; 2
如果文本(“启动任务”)也是动态的:
<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>
^^使用此输出看起来像:“启动任务(2)”其中SelectedActivitiesCount
- &gt; 2,LaunchTaskButtonTitle
- &gt;启动任务
选择适合您的方法。