将鼠标悬停在某些单元格上时,DataGrid会弹出框

时间:2011-12-20 14:21:59

标签: c# wpf wpfdatagrid

我有一个名为5列的Datagrid,命名如下

行ID, 名称, 年龄, 高度, 图像

我想要做的是当鼠标位于图像列中的单元格上时,如果有图像,我想要一个弹出框出现。我知道我可以使用工具提示进行弹出,但检查的最佳方法是鼠标悬停在单元格上并且单元格是否存在图像,如果是,则显示弹出窗口。

编辑: - 为图像列的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> 

2 个答案:

答案 0 :(得分:1)

您可以使用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>

答案 1 :(得分:0)

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