我有一个名为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>
答案 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)
有两种方法。我建议的是创建一个模板列类型/样式,并在鼠标位于单元格内时将其实现为触发器。