Zeigen WPF tooltip auf Behinderten-Element nur
Gerade gefragt, ob es möglich ist, zu zeigen, eine WPF, die auf ein deaktiviertes Element NUR (und nicht, wenn das Element aktiviert ist).
Möchte ich Ihnen einen Beschreibungs-tooltip, warum ein Element ist derzeit deaktiviert.
Ich habe eine IValueConverter
zum umkehren der booleschen IsEnabled
Eigenschaft verbindlich. Aber es scheint nicht zu funktionieren in dieser situation. Die ToolTip
ist beides zeigen, wenn das Element aktiviert und deaktiviert.
So ist es möglich, binden eine ToolTip.IsEnabled
Eigentums ausschließlich auf ein Element besitzen !IsEnabled
?
Ziemlich einfache Frage denke ich, aber code-Beispiel hier sowieso:
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
}
Und Bindung:
<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>
Vielen Dank Leute.
InformationsquelleAutor der Frage dant | 2010-05-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
JustABill Vorschlag gearbeitet. Ich musste auch definieren Sie die Zeichenfolge als eine Ressource, um Probleme zu vermeiden mit Anführungszeichen. Und müssen Sie noch festlegen, ToolTipService.ShowOnDisabled="True".
So, hier ist der funktionierende code, der zeigt, wie ein tooltip in der WPF nurwenn ein Element deaktiviert ist.
In die top-container, gehören der system-namespace (siehe sys unten). Ich habe auch ein Ressourcen-namespace, die ich rief "Res".
Dann müssen Sie
In meinem Fall war es eine Karteikarte, die ich interessiert war. Es könnte sein, jedes UI-element, wenn...
Und der Konverter in einem code, der hinter (oder wo immer Sie wollen, es zu setzen). Hinweis, mir ging es in der einen namespace namens " Ressourcenwas war erklärt früher.
InformationsquelleAutor der Antwort dant
Ein wenig veraltet, aber ich habe diese arbeiten durch Einstellung RelativeSource mode Selbst, anstatt die Einstellung der ElementName innerhalb der Bindung.
InformationsquelleAutor der Antwort Sam