2015-09-07 28 views
2

我試圖創建一個彈出窗口,當用戶在單元格中重疊鼠標時出現。我見過一些在線教程和我創建了一個工具提示這樣的:如何使用ToolTip for DataGrid?

<DataGrid> 
    <DataGrid.CellStyle> 
     <Style> 
     <Setter Property="DataGridCell.ToolTip"> 
       <Setter.Value>bb</Setter.Value> 
     </Setter> 
     </Style> 
    </DataGrid.CellStyle> 
    <DataGrid.Columns> 
     <DataGridTextColumn Binding="{Binding Path = 'position'}" ClipboardContentBinding="{x:Null}" Header="Pos." Width="*"/> 
     <DataGridTextColumn Binding="{Binding Path = 'teamName'}" ClipboardContentBinding="{x:Null}" Header="Squadra" Width="*" /> 
     <DataGridTextColumn Binding="{Binding Path = 'points'}" ClipboardContentBinding="{x:Null}" Header="Punti" Width="*"/> 
     <DataGridTextColumn Binding="{Binding Path = 'playedGames'}" ClipboardContentBinding="{x:Null}" Header="Giocate" Width="*"/> 
     <DataGridTextColumn Binding="{Binding Path = 'goals'}" ClipboardContentBinding="{x:Null}" Header="Goal fatti" Width="*"/> 
     <DataGridTextColumn Binding="{Binding Path = 'goalsAgainst'}" ClipboardContentBinding="{x:Null}" Header="Goal subiti" Width="*"/> 
     <DataGridTextColumn Binding="{Binding Path = 'goalDifference'}" ClipboardContentBinding="{x:Null}" Header="Differenza reti" Width="*"/> 
    </DataGrid.Columns> 
</DataGrid> 

唯一的問題是,我不知道如何表達一個單細胞的完整文本,當用戶與它的鼠標重疊。特別是當DataGrid是最小分辨率的標題時,單元格沒有完全顯示出來,這是一個問題,爲了避免這種情況,我會確保如果用戶在「pos」上重疊了鼠標,那麼它顯示的是完整的作爲工具提示的標題是「位置」。我怎樣才能做到這一點?

回答

4

對於DataGrid的細胞:

如果你想有一個工具提示,顯示特定的DataGrid單元格的全部內容,當鼠標移動到它,你可以修改你DataGridTextColumn並使用相同的約束力的工具提示:

<DataGridTextColumn Binding="{Binding Path = 'position'}" ClipboardContentBinding="{x:Null}" Header="Pos." Width="*"> 
    <DataGridTextColumn.CellStyle> 
     <Style TargetType="DataGridCell"> 
      <Setter Property="ToolTip" Value="{Binding Path = 'position'}" /> 
     </Style> 
    </DataGridTextColumn.CellStyle> 
</DataGridTextColumn> 

或者,如果你想一次全部列設置,您可以綁定到DataGridTextColumn的內容的Text屬性:

<DataGrid.CellStyle> 
    <Style TargetType="DataGridCell"> 
     <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Content.Text}" /> 
    </Style> 
</DataGrid.CellStyle> 

對於DataGrid中列標題:

<DataGrid.ColumnHeaderStyle> 
    <Style TargetType="DataGridColumnHeader"> 
     <Setter Property="ToolTip" Value="{Binding}" /> 
    </Style> 
</DataGrid.ColumnHeaderStyle> 
+0

是的,但我的意思是,你可以在DataGrid中的其他列做到不爲x列創建X工具提示? – Bender

+0

是的,你可以。你可以像上面那樣修改你的'DataGrid.CellStyle'。我編輯了包含這個替代方案的答案。 – Ignatius

+0

好的,但是當我將鼠標放在單元格「標題」上時,什麼都沒有發生。 – Bender

相關問題