WPF如何在DataGrid单元格鼠标悬停时显示弹出窗口

5
我希望实现以下功能:我有一个数据网格,在鼠标指针悬停在单元格上时,我的程序应该显示一个带有信息的弹出屏幕。当鼠标离开单元格时,弹出屏幕应该消失。我希望只使用XAML代码来完成这个功能。
以下是我的XAML中的弹出屏幕:
<Popup x:Name="_popup_agreementDetails" Placement="Center" AllowsTransparency="True"
               HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="2" Margin="46,333,102,172" Grid.Row="2" IsOpen="{Binding IsChecked, ElementName=button}">
    <my:UC1001_AgreementDetails_View Background="#FFF" Opacity="0.88" />
</Popup>

正如您所看到的,弹出窗口显示了我制作的用户控件。这是我的数据网格:
 <DataGrid x:Name="employeeGrid" Height="250" Margin="25,0,10,0" ColumnHeaderStyle="{DynamicResource CustomColumnHeader}">
     <DataGrid.Columns>
         <DataGridTextColumn Header="Naam" Width="150"/>
         <DataGridTextColumn Header="Januari" Width="*"/>
         <DataGridTextColumn Header="Februari" Width="*"/>
         <DataGridTextColumn Header="Maart" Width="*"/>
         <DataGridTextColumn Header="April" Width="*"/>
         <DataGridTextColumn Header="Mei" Width="*"/>
         <DataGridTextColumn Header="Juni" Width="*"/>
         <DataGridTextColumn Header="Juli" Width="*"/>
         <DataGridTextColumn Header="Augustus" Width="*"/>
         <DataGridTextColumn Header="September" Width="*"/>
         <DataGridTextColumn Header="Oktober" Width="*"/>
         <DataGridTextColumn Header="November" Width="*"/>
         <DataGridTextColumn Header="December" Width="*"/>
     </DataGrid.Columns>
 </DataGrid>

我看到一些关于触发器和弹出窗口的东西,但我不知道如何在数据网格单元格上实现它。弹出窗口应该在每个单元格上显示。弹出窗口中显示的信息取决于悬停的单元格。

有人知道如何在XAML中实现吗?

1个回答

7

您说...

当我用鼠标指针悬停在单元格上时,我希望我的程序显示一个包含信息的弹出屏幕。当我的鼠标离开单元格时,我希望弹出屏幕自动消失。

我想即使只是使用DataGridCell.ToolTip也足够了。工具提示可以显示任何类型的内容... 请参考这个花哨的工具提示教程...

如需为所有数据网格单元格设置工具提示,请使用以下代码...

   <DataGrid ... >
       <DataGrid.CellStyle>
          <Style>
             <Setter Property="DataGridCell.ToolTip">
                <Setter.Value>
                   <my:UC1001_AgreementDetails_View
                           Background="#FFF"
                           Opacity="0.88" />
                </Setter.Value>
              </Setter>
            </Style>
       </DataGrid.CellStyle>
       ...
    </DataGrid> 

希望能帮到你,

谢谢!我对WPF比较陌生,所以我不知道ToolTip可以容纳任何类型的内容。这正是我需要的,看起来比使用触发器和弹出窗口更容易。 - Jelle Capenberghs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接