Basta chiedersi se è possibile mostrare un WPF su un articolo disattivato SOLO (e non quando l'elemento è abilitato).Mostra solo suggerimento WPF su articolo disattivato
Vorrei fornire all'utente una descrizione del motivo per cui un articolo è attualmente disabilitato.
Ho un IValueConverter
per invertire l'associazione booleana IsEnabled
. Ma non sembra funzionare in questa situazione. Lo ToolTip
viene visualizzato sia quando l'elemento è abilitato e disabilitato.
Quindi è possibile associare una proprietà ToolTip.IsEnabled
esclusivamente a un oggetto proprio! ?
domanda abbastanza semplice credo, ma codice di esempio qui comunque:
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
}
E il legame:
<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>
Grazie gente.
Sei sicuro che ToolTipService.ShowOnDisabled = "True" non sta eseguendo "dopo" la tua inversione? Sembra che solo il binding abilitato debba essere necessario. – JustABill
@JUSTABill: Questo potrebbe essere il caso, ma non funziona senza ToolTipService.ShowOnDisabled = "True". Forse ho bisogno di gestirlo in code-behind. Preferirei conservare le informazioni della GUI in XAML, se possibile. – dant
In questo caso, ti suggerisco di associare Tooltip come ToolTip = "{Binding ElementName = tabItem2, Path = IsEnabled, Converter = {StaticResource newconverter}, ConverterParameter = Il testo del tooltip effettivo va qui}", dove newconverter è un nuovo tipo che restituisce il valore nel parametro se il valore è true. O falso nel tuo caso, credo. (Anche io l'ho digitato dalla memoria quindi perdonami se la sintassi è disattivata) – JustABill