Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataGrid弹出图像_C#_Wpf_Image_Datagrid - Fatal编程技术网

C# DataGrid弹出图像

C# DataGrid弹出图像,c#,wpf,image,datagrid,C#,Wpf,Image,Datagrid,我将图片路径保存到datagrid行,并希望在鼠标悬停在datagrid行上时显示弹出图像 像这样: 这是我的xaml代码: <DataGrid Name="DG_selected_pictures" AutoGenerateColumns="False" Margin="8,74,8,-113.8" IsReadOnly="True"> <DataGrid.Columns >

我将图片路径保存到datagrid行,并希望在鼠标悬停在datagrid行上时显示弹出图像

像这样:

这是我的xaml代码:

            <DataGrid Name="DG_selected_pictures" AutoGenerateColumns="False"  Margin="8,74,8,-113.8" IsReadOnly="True">
                <DataGrid.Columns >
                    <DataGridTextColumn Binding="{Binding Path=Picture}" MinWidth="485"   />
                </DataGrid.Columns>
            </DataGrid>

c#代码背后:

private void BT\u选择图片\u单击(对象发送者,路由目标)
{
var picture_list=新的ObservableCollection();
Microsoft.Win32.OpenFileDialog openfile=新建Microsoft.Win32.OpenFileDialog();
//string filter=“Picture files”(*.jpg)|*.jpg |所有文件(*.*)|*.”;
openfile.Filter=“图片文件(*.jpg)|*.jpg|所有文件(*.*)|*.”;
openfile.Multiselect=true;
if(openfile.ShowDialog()==true)
{
int index=openfile.FileName.LastIndexOf(“\\”)+1;
int lastindex=openfile.FileName.Length-1;
字符串folderPath=openfile.FileName;
folderPath=folderPath.Remove(index,folderPath.Length-index);
TB_selected_files_folder.Text=folderPath;
}
foreach(openfile.filename中的字符串图片)
{
i++;
picture_list.Add(新数据对象(){picture=picture});
所选图片。添加(图片);
}
LB_selected_pictures_count.Content=Convert.ToString(i)+“db”;
this.DG_selected_pictures.ItemsSource=picture_list;//这是数据网格
}
问题是我不知道怎么做。工具提示还是弹出窗口?语法是什么


感谢并抱歉我的英语不好。

当光标位于列单元格上时,DataGridCell的工具提示将可见:

<DataGridTextColumn Binding="{Binding Path=Picture}" MinWidth="485">
    <DataGridTextColumn.CellStyle>
        <Style TargetType="DataGridCell">
            <Setter Property="ToolTip">
                <Setter.Value>
                    <Image Source="{Binding Path=Picture}"/>
                </Setter.Value>
            </Setter>
        </Style>
    </DataGridTextColumn.CellStyle>
</DataGridTextColumn>

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

<Style TargetType="Image">
    <Style.Triggers>
        <MultiDataTrigger>
            <MultiDataTrigger.Conditions>
                <Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="True" />
                <Condition Binding="{Binding Picture, Converter={StaticResource IsImageNullConverter}}" Value="False" />
            </MultiDataTrigger.Conditions>

        </MultiDataTrigger>
    </Style.Triggers>
</Style>

<Style TargetType="Image">
    <Style.Triggers>
        <MultiDataTrigger>
            <MultiDataTrigger.Conditions>
                <Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="True" />
                <Condition Binding="{Binding Picture, Converter={StaticResource IsImageNullConverter}}" Value="False" />
            </MultiDataTrigger.Conditions>

        </MultiDataTrigger>
    </Style.Triggers>
</Style>