Хотите, чтобы всплывающая подсказка WPF DataGrid работала как комментарии к ячейкам Excel - PullRequest
1 голос
/ 10 ноября 2010

Это поведение, которое я получаю из ячейки Excel с комментариями:

1) Поместите мышь в любом месте на ячейку, и комментарий всплывет как желтая подсказка;

2) Комментарий будет сохраняться неопределенно , пока курсор мыши остается в ячейке

Мне нужны аналогичные функции только для DataGridColumnHeader.

Я начал сследующим образом:

   <DataGridTextColumn Binding="{Binding Path=SomeProperty}">
      <DataGridTextColumn.Header>
         <TextBlock Text="MyColHeader" Background="red" >
           <TextBlock.ToolTip>
              <StackPanel Width="400">
                within stack panel make format as fancy as i like, works great;
              </StackPanel>    
           </TextBlock.ToolTip>
        </TextBlock>
      </DataGridTextColumn.Header>
   </DataGridTextColumn>

Проблема в том, что всплывающая подсказка появляется только при наведении курсора мыши на текст заголовка столбца, т.е. в моем примере на текст «MyColHeader» и НЕ где-либо в ячейке.

Через час я придумал что-то, что адресовано точке 1):

<DataGridTextColumn
  Header="MyColHeader"
  Binding="{Binding Path=SomeProperty}">
   <DataGridTextColumn.HeaderStyle>
     <Style TargetType="{x:Type DataGridColumnHeader}">
      <Style.Triggers>
         <Trigger Property="IsMouseOver" Value="True">
         <Setter Property="ToolTip">
            <Setter.Value>
               <StackPanel Width="400">
                 make formatting as fancy as i like, works great;
              </StackPanel>
             </Setter.Value>
            </Setter>
           </Trigger>
         </Style.Triggers>
    </Style>
    </DataGridTextColumn.HeaderStyle>
</DataGridTextColumn>

Намного лучше, остающийся вопрос - мне нужно обратиться к точке 2), т.е.Заставьте подсказку оставаться на неопределенное время, пока курсор находится над заголовком col.

1 Ответ

1 голос
/ 10 ноября 2010

Вам необходимо установить ToolTipService.StaysOpen для TextColumn, как описано здесь: Принудительное отображение подсказки WPF на экране

...