2010-08-05 4 views
6

En mi aplicación Silverlight 4 tengo algunos consejos largos. De forma predeterminada, estas sugerencias aparecen una línea muy larga. Por ejemplo:¿Cómo se puede activar el ajuste de palabras para todas las sugerencias de herramientas en 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"/> 

Lo que me gustaría hacer es hacer que la información sobre herramientas se envuelven alrededor de aparecer en varias líneas. Una forma de lograr esto es definir la información sobre herramientas usando un TextBlock. Por ejemplo:

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

tener que hacer esto para cada control que quiero definir un texto de ayuda parece una gran cantidad de trabajo extra. Idealmente, lo que me gustaría hacer es definir los tooltips como cadenas como el primer ejemplo, y luego tener un estilo aplicado globalmente a todos los ToolTips, lo que haría que los tooltips se envuelvan. Así que en mi App.xaml, yo definiría así:

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

Algún consejo sobre cómo podría ir haciendo esto?

Respuesta

14

Puede crear un estilo implícito para la información sobre herramientas y establecer la plantilla de contenido en algo apropiado, p. Ej.

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

continuación, puede utilizar algo como:

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

perfecto! Gracias Steve, eso era justo lo que estaba buscando. Un pequeño cambio que realicé en esta solución fue usar MaxWidth en lugar de Width, lo que ayuda a que la información sobre herramientas sea del tamaño correcto. –

Cuestiones relacionadas