WPF在DataGrid单元格MouseOver上显示弹出窗口

Jel*_*ghs 5 wpf xaml datagrid popup mouseover

我想要以下功能:我有一个数据网格,当我用鼠标指针移动到一个单元格时,我会让我的程序显示一个包含信息的弹出屏幕.当我的鼠标离开细胞时,显然我希望弹出窗口消失.我希望我只能在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>
Run Code Online (Sandbox Code Playgroud)

如您所见,弹出窗口显示我制作的用户控件.这是我的datagrid:

 <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>
Run Code Online (Sandbox Code Playgroud)

我读了一些关于触发器和东西的东西来显示弹出窗口,但我不知道如何在datagrid单元格上实现它.弹出窗口应显示在每个单元格上.弹出窗口上显示的信息取决于悬停的单元格.

有谁知道如何在XAML中执行此操作?

WPF*_*-it 7

你说 ....

当我用鼠标指针移动到单元格上时,我会在程序中显示一个包含信息的弹出屏幕.当我的鼠标离开细胞时,显然我希望弹出窗口消失.

我想DataGridCell.ToolTip在这种情况下即使是应该也足够了.工具提示可以显示任何类型的内容....请参阅此花哨的工具提示教程...

并将工具提示设置为所有datagrid单元格...使用此代码...

   <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> 
Run Code Online (Sandbox Code Playgroud)

希望有所帮助,