Vous vous demandez simplement s'il est possible d'afficher un WPF sur un élément désactivé SEULEMENT (et non lorsque l'élément est activé).Afficher l'info-bulle WPF sur l'élément désactivé uniquement
Je voudrais donner à l'utilisateur une info-bulle expliquant pourquoi un élément est actuellement désactivé.
J'ai un IValueConverter
pour inverser la liaison de propriété booléenne IsEnabled
. Mais cela ne semble pas fonctionner dans cette situation. Le ToolTip
est affiché lorsque l'élément est activé et désactivé.
Il est donc possible de lier une propriété ToolTip.IsEnabled
exclusivement à un objet! IsEnabled
?
question assez simple, je suppose, mais exemple de code ici de toute façon:
public class BoolToOppositeBoolConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
if (targetType != typeof(bool))
throw new InvalidOperationException("The target must be a boolean");
return !(bool)value;
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
if (targetType != typeof(bool))
throw new InvalidOperationException("The target must be a boolean");
return !(bool)value;
}
#endregion
}
Et la liaison:
<TabItem Header="Tab 2" Name="tabItem2" ToolTip="Not enabled in this situation." ToolTipService.ShowOnDisabled="True" ToolTipService.IsEnabled="{Binding Path=IsEnabled, ElementName=tabItem2, Converter={StaticResource oppositeConverter}}">
<Label Content="Item content goes here" />
</TabItem>
Merci les gens.
Êtes-vous sûr que ToolTipService.ShowOnDisabled = "True" n'exécute pas "après" votre inversion? Il semble que seule la liaison activée devrait être nécessaire. – JustABill
@ JustBill: Cela pourrait être le cas mais cela ne fonctionne pas sans ToolTipService.ShowOnDisabled = "True". Peut-être que je dois gérer le code-behind. Je préférerais garder les éléments GUI en XAML si possible. – dant
Dans ce cas, je vous suggère de lier à Tooltip comme ToolTip = "{Liaison ElementName = tabItem2, Path = IsEnabled, Convertisseur = {StaticResource newconverter}, ConverterParameter = Texte de l'info-bulle actuelle va ici}", où newconverter est un nouveau type qui retourne la valeur dans le paramètre si la valeur est true. Ou faux dans votre cas, je suppose. (Aussi je l'ai tapé de la mémoire alors pardonnez-moi si la syntaxe est désactivée) – JustABill