2009-08-06 10 views
3
<TextBox Name="txtInput"> 
<TextBox.ToolTip> 
    <ToolTip Name="TestToolTip"> 
     This a test message 
    </ToolTip> 
</TextBox.ToolTip> 

WPF - Afficher Textbox infobulle

private void btnClick_Click_1(object sender, RoutedEventArgs e) 
{ 
    txtInput.Focus(); 
    ToolTipTest.IsVisible = true; 
} 

Lorsque le bouton est cliqué l'info-bulle apparaît sur le bouton, je veux simuler mettre le pointeur de la souris sur la zone de texte, la boîte à outils à afficher pour la textbox

+1

Pourquoi simuleriez-vous quelque chose? Avec le code que vous avez posté, l'info-bulle devrait apparaître lorsque vous placez la souris sur le TextBox ... –

+0

Je veux mettre BL dans le gestionnaire de clic, par exemple - si la zone de texte est vide, le focus et l'info-bulle apparaît "Veuillez le remplir" . –

Répondre

5

Tout d'abord, vous devriez utiliser la validation standard pour quelque chose comme ce que vous faites. De votre commentaire ci-dessus je peux dire que c'est ce que vous faites et vous devriez savoir que WPF a un très bon système intégré pour faire exactement ce que vous voulez sans le faire impérativement (et très réutilisable).

Voici un exemple de style que vous pouvez appliquer, par exemple, à toutes les zones de texte lorsque la valeur à laquelle elles sont liées ne valide pas (en utilisant IDataErrorInfo).

<Style.Triggers> 
    <Trigger Property="Validation.HasError" Value="true"> 
     <Setter Property="ToolTip"> 
      <Setter.Value> 
       <ToolTip Content="{Binding RelativeSource={RelativeSource Self}, 
        Path=(Validation.Errors)[0].ErrorContent}" IsOpen="true" /> 
      </Setter.Value> 
     </Setter> 
    </Trigger> 
</Style.Triggers> 

Vous pouvez également envisager une interface plus standard qui utilise la couche de Adorner pour mettre un indicateur d'échec de validation à côté du contrôle qui a échoué la validation. Voici un exemple sur ce point:

http://blogsprajeesh.blogspot.com/2009/03/handling-error-in-wpf-idataerrorinfo.html

Bonne chance.