2014-10-02 146 views
2

我有我的datagrid配置为显示每行的自定义工具提示。WPF datagrid tooltip延迟

我的问题是,这个工具提示对用户来说有点侵略性,并且占用了很大一部分屏幕(我没有选择减少它)。因此,为了减少攻击性,我将一个属性设置为InitialShowDelay为2000毫秒,以便在用户将鼠标放在一行之后2秒钟出现工具提示。

当鼠标位于其他位置时,它可以正常工作,然后进入数据网格并在一行之后(2秒钟后出现工具提示)。但是现在,当移动到另一行(datagrid没有失去焦点)时,其他行的工具提示立即出现。所以它看起来不考虑InitialShowDelay财产...

我的代码是这样的:

<DataGrid ...> 
    <DataGrid.RowStyle> 
     <Style TargetType="DataGridRow"> 
      <Setter Property="ToolTip" Value="{StaticResource TooltipTemplateStyle}"></Setter> 
      <Setter Property="ToolTipService.ShowDuration" Value="48000"></Setter> 
      <Setter Property="ToolTipService.InitialShowDelay" Value="2000"></Setter> 
     </Style> 
    </DataGrid.RowStyle> 
</DataGrid> 

你知道什么办法来设置提示延迟时间内从一行移动到另一个时相同的数据网格?

在此先感谢!

回答

1

我认为你要找的是BetweenShowDelay。在这里阅读更多MSDN

使用(从页面):

<Ellipse Height="25" Width="50" 
      Fill="Gray" 
      HorizontalAlignment="Left" 
      ToolTipService.InitialShowDelay="1000" 
      ToolTipService.ShowDuration="7000" 
      ToolTipService.BetweenShowDelay="2000"> 
+0

这使得有很大的意义! MSDN的例子似乎很清楚,但是当把它放到RowStyle setters中时,不起作用:(如果我尝试将它放入DataGrid定义()也尝试玩价值(2000,10000,1,0,...),但没有任何工作。 – 2014-10-02 09:03:32