您好,感谢您的帮助。我有一个Treeview,我用一个Hierarchical数据模板填充,目前底部节点有一个工具提示,生成一个小的堆栈面板,其中填充了鼠标悬停在项目上的特定数据。我也有一个按钮位于工具提示中,但是,当鼠标移过它时工具提示不会持续存在,我无法像我需要那样使用按钮。我的xaml看起来像这样:
<!--=========================== Hierarchical Data template for tree view -->
<!--template for bottom nodes-->
<sdk:HierarchicalDataTemplate x:Key="ModTemplate" ItemsSource="{Binding ApplicationModules}">
<StackPanel Orientation="Horizontal" > <!--======tooltip style to handle format for callout window============-->
<ToolTipService.ToolTip>
<ToolTip HorizontalOffset="0" VerticalOffset="0" Style="{StaticResource ModuleToolTipStyle}">
<StackPanel Width="150" Height="auto" >
<TextBlock Text="Module Info" FontWeight="Bold" TextAlignment="Center"/>
<TextBlock Text="Module State:" FontWeight="Bold" />
<TextBlock Text="{Binding Path=ModInfo.ModuleState}" />
<TextBlock Text="Module Start Time:" FontWeight="Bold" />
<TextBlock Text="{Binding Path=ModInfo.ModuleStartTime}"/>
<TextBlock Text="Module Down Time:" FontWeight="Bold"/>
<TextBlock Text="{Binding Path=ModInfo.ModuleDownTime}" />
<Button Content="More Info" Width="75"></Button>
</StackPanel>
</ToolTip>
</ToolTipService.ToolTip>
<!--============end tooltip style for callout window===================-->
<ContentPresenter Margin="0 0 4 0" Content="{Binding Icon}" />
<TextBlock FontStyle="Italic" Text="{Binding Path=ModuleName}" />
</StackPanel>
</sdk:HierarchicalDataTemplate>
我希望当鼠标移过它时工具提示会持续存在,以便我可以将事件连接到按钮。我怎样才能做到这一点?再次感谢您的帮助。
答案 0 :(得分:1)
您有几个选项可以实现我所了解的目标。您可以在codeplex上查看Silverlight Advanced Tooltips项目,该项目符合您的要求(虽然我个人没有使用它,因此无法进行任何类型的审核。)
或者你可以通过一些创造力来创造自己。如果它是我,我可能会跳过所有这些混乱,忘记ToolTipService一起,只是让我自己装扮它,因为对用户来说,你提供的不是他们习惯的工具提示无论如何,期望并且更多地交叉到标注或弹出功能。如果选项#1对您不起作用,我可以在获得一些释放时间后立即作出示例,但我希望它能。基本上我的方式和我提供的项目链接都会做同样的事情,这会在MouseLeave事件之后提供延迟,因为用户可以在它消失之前到达它。然后将其可见性条件移交给该对象。让我知道如果这不起作用,我可以给你一个替代的例子,只使用XAML。