2010-08-05 4 views
6

Nella mia applicazione Silverlight 4 ho alcuni tooltip lunghi. Per impostazione predefinita, queste descrizioni comandi appaiono una riga molto lunga. Per esempio:Come si può attivare il ritorno di parole per tutti i suggerimenti sugli strumenti in Silverlight 4?

 <TextBox Text="Test1" 
     ToolTipService.ToolTip="One tasdg asdg as da sdg asdg asdg asdg asd gas dg a sdg a sdg a sd a sd g asdasdgasdg sadgasdgasdg asdg asdg asd as a sd g a sdg  asd g asd g asd g asdgasdg  asdgasdg"/> 

Quello che vorrei fare è quello di rendere i tooltip avvolgere intorno a comparire su più righe. Un modo per ottenere ciò è definire il suggerimento usando un TextBlock. Per esempio:

 <TextBox Text="Test2"> 
     <ToolTipService.ToolTip> 
      <TextBlock TextWrapping="Wrap" Width="200" Text="One tasdg asdg as da sdg asdg asdg asdg asd gas dg a sdg a sdg a sd a sd g asdasdgasdg sadgasdgasdg asdg asdg asd as a sd g a sdg  asd g asd g asd g asdgasdg  asdgasdg"/>    
     </ToolTipService.ToolTip> 
    </TextBox> 

Avere a che fare questo per ogni controllo che voglio definire un tooltip sembra un sacco di lavoro extra. Idealmente, ciò che mi piacerebbe fare è definire le descrizioni dei comandi come stringhe come il primo esempio, e poi avere uno stile applicato globalmente a tutti i ToolTips, il che renderebbe i tooltips avvolgenti. Così nel mio App.xaml, che definirei qualcosa di simile:

 <Style TargetType="ToolTip"> 
     <!-- Somehow make all tooltips wrap at a width of 200 --> 
    </Style> 

Qualche consiglio su come potrei andare a fare questo?

risposta

14

È possibile creare uno stile implicito per il suggerimento e impostare il modello di contenuto su qualcosa di appropriato - ad es.

<Style TargetType="ToolTip"> 
    <Setter Property="ContentTemplate"> 
     <Setter.Value> 
      <DataTemplate> 
       <TextBlock TextWrapping="Wrap" Width="200" Text="{Binding}" /> 
      </DataTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Quindi è possibile usare qualcosa come:

<TextBox Text="Test2" ToolTipService.ToolTip="abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg " /> 
+1

Perfetto! Grazie Steve, era proprio quello che stavo cercando. Una piccola modifica che ho apportato a questa soluzione consisteva nell'usare MaxWidth anziché Width, che aiuta a rendere il tooltip la giusta dimensione. –

Problemi correlati