2011-10-13 11 views
5

Desidero la seguente funzionalità: Dispongo di un datagrid e quando passo con il puntatore del mouse su una cella, il mio programma mostrerà una schermata popup con informazioni. Quando il mio mouse lascia la cella, ovviamente voglio che il popup scompaia. Spero di poterlo fare solo nel codice XAML.WPF show popup su cella DataGrid MouseOver

Questa è la mia comparsa in XAML:

<Popup x:Name="_popup_agreementDetails" Placement="Center" AllowsTransparency="True" 
       HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="2" Margin="46,333,102,172" Grid.Row="2" IsOpen="{Binding IsChecked, ElementName=button}"> 
    <my:UC1001_AgreementDetails_View Background="#FFF" Opacity="0.88" /> 
</Popup> 

Come si può vedere, il pop-up mostra un controllo utente che ho fatto. Questo è il mio datagrid:

<DataGrid x:Name="employeeGrid" Height="250" Margin="25,0,10,0" ColumnHeaderStyle="{DynamicResource CustomColumnHeader}"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Naam" Width="150"/> 
     <DataGridTextColumn Header="Januari" Width="*"/> 
     <DataGridTextColumn Header="Februari" Width="*"/> 
     <DataGridTextColumn Header="Maart" Width="*"/> 
     <DataGridTextColumn Header="April" Width="*"/> 
     <DataGridTextColumn Header="Mei" Width="*"/> 
     <DataGridTextColumn Header="Juni" Width="*"/> 
     <DataGridTextColumn Header="Juli" Width="*"/> 
     <DataGridTextColumn Header="Augustus" Width="*"/> 
     <DataGridTextColumn Header="September" Width="*"/> 
     <DataGridTextColumn Header="Oktober" Width="*"/> 
     <DataGridTextColumn Header="November" Width="*"/> 
     <DataGridTextColumn Header="December" Width="*"/> 
    </DataGrid.Columns> 
</DataGrid> 

Ho letto alcune cose sui trigger e roba per mostrare la comparsa, ma non so come implementarlo su una cella DataGrid. Il popup dovrebbe apparire su ogni cella. Le informazioni visualizzate sul popup dipendono dalla cella al passaggio del mouse.

Qualcuno sa come farlo in XAML?

risposta

7

Hai detto ....

quando vado con il mio puntatore del mouse su una cella, vorrei il mio programma per visualizzare una schermata pop-up con le informazioni. Quando il mio mouse lascia la cella, , ovviamente, voglio che il popup scompaia.

immagino anche un DataGridCell.ToolTip dovrebbe essere sufficiente anche in quel caso. I tooltip possono mostrare qualsiasi tipo di contenuto .... Vedi questo fancy tooltip tutorial ...

E per l'impostazione tooltip a tutte le cellule DataGrid ... utilizzare questo codice ...

<DataGrid ... > 
     <DataGrid.CellStyle> 
      <Style> 
      <Setter Property="DataGridCell.ToolTip"> 
       <Setter.Value> 
        <my:UC1001_AgreementDetails_View 
          Background="#FFF" 
          Opacity="0.88" /> 
       </Setter.Value> 
       </Setter> 
      </Style> 
     </DataGrid.CellStyle> 
     ... 
    </DataGrid> 

Speranza che aiuta,

+0

Grazie! Sono un po 'nuovo a WPF quindi non sapevo che un ToolTip potesse contenere qualsiasi tipo di contenuto. Questo è esattamente ciò di cui ho bisogno e sembra più semplice lavorare con trigger e popup. –