数据网格弹出框,当鼠标在某些单元格

本文关键字:鼠标 单元格 网格 数据网 数据 | 更新日期: 2023-09-27 18:18:19

我有一个数据网格,有5列,命名如下

RowID,名字的年龄,高度,图片

我想做的是当鼠标在图像列的一个单元格上,如果有一个图像,我想要一个弹出框出现。我知道我可以在弹出窗口中使用工具提示,但是检查鼠标在单元格上是否有图像的最好方法是什么呢?如果有,则显示弹出窗口。

编辑:-为图像列添加了DataGrid列的代码

<DataGridTemplateColumn Header="Image">                        
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Image Width="32" Height="32" HorizontalAlignment="Center" VerticalAlignment="Center"
                Source="{Binding IMG, Converter={StaticResource ImageConvert}}"/>                                           
        </DataTemplate>                            
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn> 

数据网格弹出框,当鼠标在某些单元格

您可以使用IsMouseOver属性来确定鼠标是否在对象上,并使用MultiDataTrigger来评估多个条件。

<Style TargetType="Image">
    <Style.Triggers>
        <MultiDataTrigger>
            <MultiDataTrigger.Conditions>
                <Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="True" />
                <Condition Binding="{Binding IMG, Converter={StaticResource IsImageNullConverter}}" Value="False" />
            </MultiDataTrigger.Conditions>
            <Setter Property="ToolTip">
                <Setter.Value>
                    <!-- Your ToolTip here -->
                </Setter.Value>
            </Setter>
        </MultiDataTrigger>
    </Style.Triggers>
</Style>

有几种方法。我建议创建一个模板列类型/样式,并将其实现为鼠标在单元格内时的触发器。