2017-03-03 6 views
0

私は、データグリッドの行に画像のパスを保存し、マウスがデータグリッドの行にあるときにポップアップイメージを表示したいと思います。このようDataGridポップアップイメージ

:prolemは私が方法がわからないということです

 private void BT_select_pictures_click(object sender, RoutedEventArgs e) 
    { 
     var picture_list = new ObservableCollection<DataObject>(); 
     Microsoft.Win32.OpenFileDialog openfile = new Microsoft.Win32.OpenFileDialog(); 
     //string filter = "Picture files "(*.jpg)|*.jpg|All files (*.*)|*.*"; 
     openfile.Filter = "Picture files (*.jpg)|*.jpg|All files (*.*)|*.*"; 
     openfile.Multiselect = true; 

     if (openfile.ShowDialog() == true) 
     { 
      int index = openfile.FileName.LastIndexOf("\\") + 1; 
      int lastindex = openfile.FileName.Length - 1; 
      string folderPath = openfile.FileName; 
      folderPath = folderPath.Remove(index, folderPath.Length - index); 
      TB_selected_files_folder.Text = folderPath; 
     } 
     foreach (String picture in openfile.FileNames) 
     { 
      i++; 
      picture_list.Add(new DataObject() { Picture = picture }); 
      selected_pictures.Add(picture); 
     } 
     LB_selected_pictures_count.Content = Convert.ToString(i) + " db"; 

     this.DG_selected_pictures.ItemsSource = picture_list; // This is the datagrid 

    } 

:C#コードの後ろ

  <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> 

example

これは私のXAMLコードであります私はそれをすることができます。ツールチップまたはポップアップ?構文は何ですか?

私の悪い英語のためにありがとうと申し訳ありません。

<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> 

答えて

0

ツールヒントが表示されます。

<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> 
+0

ありがとうございます!私はそれについて考えていた! – Haldyr

0

は、マウスがオブジェクト上にあるかどうかを決定するためにIsMouseOverプロパティを使用することができ、そしてMultiDataTriggerは、複数の条件を評価するために、カーソルを列のセル上にあるときDataGridCellため

関連する問題