一、具体需求描述
在WPF下实现,当鼠标悬停在ListView中的某一元素的时候能弹出一个ToolTip以显示需要的信息。
二、代码实现 在.XMAL文件中
<Window.Resources> <DataTemplate x:Key="dataTemplateCheckBox"> <StackPanel Orientation="Horizontal"> <CheckBox Name="listchk" /> </StackPanel> </DataTemplate> <ToolTip x:Key="InforTip"> <StackPanel Orientation="Horizontal"> <TextBlock Text="Name:" /> <TextBlock Text="{Binding Path=Name}"/> <TextBlock Text="Type:" /> <TextBlock Text="{Binding Path=Type}"/> </StackPanel> </ToolTip> <Style x:Key="InforTipStyle" TargetType="{x:Type ListViewItem}"> <Setter Property="ToolTip" Value="{Binding Source={StaticResource InforTip}}" /> </Style> </Window.Resources>
在listview 元素中加入ItemContainerStyle="{StaticResource InfoTipStyle}"
如下所示代码:
<ListView Height="373" HorizontalAlignment="Left" Margin="12,85,0,0" Name="listViewMovies" VerticalAlignment="Top" Width="567" ItemContainerStyle="{StaticResource InforTipStyle}"> <ListView.View> <GridView> <GridViewColumn Header="片名" DisplayMemberBinding="{Binding Path=Name}" /> <GridViewColumn Header="类型" DisplayMemberBinding="{Binding Path=Type}" /> <GridViewColumn Header="状态" DisplayMemberBinding="{Binding Path=State}" /> <GridViewColumn Header="备注" DisplayMemberBinding="{Binding Path=Remarks}" /> <GridViewColumn Header="更新时间" DisplayMemberBinding="{Binding Path=UpdateTime}" /> <GridViewColumn Header="演员" DisplayMemberBinding="{Binding Path=Actor}" /> <GridViewColumn Header="地区" DisplayMemberBinding="{Binding Path=Area}" /> </GridView> </ListView.View> </ListView>
三、心得 调用顺序就是listview呈现出预定的style, InfoTipStyle 调用声明好的tooltip。 由于是刚刚接触WPF,所以对很多东西都没有太多心得。希望大家积极参与讨论…… 如果你也在学习WPF可以联系我哦! ps:另外大家还可以参考下这个网址下的文章…… 我就是从这里得到的启示! http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/1508ee76-674c-42cf-88f6-1237d039f65f