Sfortunatamente, non esiste un modo semplice per farlo. Idealmente, dovresti impostare ToolTipService.InitialShowDelay su FrameworkElement e lasciarlo propagare da lì, ma risulta che non sembra funzionare.
Invece, è possibile impostare su ogni tipo di controllo che si desidera impostare su, per esempio:
<Style TargetType="RibbonButton">
<Setter Property="ToolTipService.InitialShowDelay" Value="2000"/>
</Style>
<Style TargetType="RibbonToggleButton">
<Setter Property="ToolTipService.InitialShowDelay" Value="2000"/>
</Style>
<Style TargetType="RibbonDropDownButton">
<Setter Property="ToolTipService.InitialShowDelay" Value="2000"/>
</Style>
ecc
Anche se questo è un modo piuttosto dettagliato di farlo , almeno devi solo impostarlo su ogni tipo di controllo e non su ogni controllo stesso - e se lo stai usando nella barra multifunzione, allora c'è solo una manciata di controlli per cominciare.
per risparmiare un po 'di fastidio dovrebbe mai voler cambiare il valore, si consiglia di architetto il codice qui sopra utilizzando un valore di risorsa:
<sys:Int32 x:Key="ToolTipInitialShowDelay">2000</sys:Int32>
<Style TargetType="RibbonButton">
<Setter Property="ToolTipService.InitialShowDelay"
Value="{StaticResource ToolTipInitialShowDelay}"/>
</Style>
<Style TargetType="RibbonToggleButton">
<Setter Property="ToolTipService.InitialShowDelay"
Value="{StaticResource ToolTipInitialShowDelay}"/>
</Style>
<Style TargetType="RibbonDropDownButton">
<Setter Property="ToolTipService.InitialShowDelay"
Value="{StaticResource ToolTipInitialShowDelay}"/>
</Style>
In alternativa, se non si è già utilizzando stili BasedOn, è potrebbe accorciare a:
<Style x:Key="ToolTipDefaults">
<Setter Property="ToolTipService.InitialShowDelay" Value="2000"/>
</Style>
<Style TargetType="RibbonButton" BasedOn="{StaticResource ToolTipDefaults}"/>
<Style TargetType="RibbonToggleButton" BasedOn="{StaticResource ToolTipDefaults}"/>
<Style TargetType="RibbonDropDownButton" BasedOn="{StaticResource ToolTipDefaults}"/>
Il limite di questo approccio è che uno stile può essere basata solo su uno stile principale, quindi se si sta già utilizzando questo modello, non sarà in grado di fare questo.
fonte
2009-06-04 21:38:05
Cerco una soluzione del genere (stile unico), ma senza dover assegnare chiave FieldStyle agli elementi. –