Yalnızca bir devre dışı bırakılmış öğeye WPF gösterilip gösterilmeyeceğini merak etme SADECE (ve öğe etkinleştirildiğinde değil).Yalnızca devre dışı bırakılmış öğede WPF araç ipucunu göster
Kullanıcıya, bir öğenin neden devre dışı bırakıldığını açıklayan bir araç ipucu vermek istiyorum.
Boole IsEnabled
özellik bağlayıcısını tersine çevirmek için IValueConverter
sahibim. Ancak bu durumda işe yaramıyor. ToolTip
, öğenin etkinleştirildiği ve devre dışı bırakıldığını gösterir.
ToolTip.IsEnabled
özelliğini yalnızca bir öğeye ait olmak üzere bağlamak mümkündür! IsEnabled
?
Oldukça basit sanırım soru, ama yine de buraya kod örneği:
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
}
Ve bağlayıcı:
<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>
teşekkürler millet.
ToolTipService.ShowOnDisabled = "Doğru", inversiyonunuzu "sonra" yürütmediğinden emin misiniz? Sadece etkin bağlamanın gerekli olması gerektiği gibi görünüyor. – JustABill
@JustABill: Bu durum böyle olabilir ancak ToolTipService.ShowOnDisabled = "True" olmadan çalışmaz. Belki de kod arkasında işlem yapmalıyım. Mümkünse GUI maddelerini XAML'de tutmayı tercih ederim. – dant
Bu durumda, ToolTip gibi Tooltip'e bağlamanızı öneririm = "{Binding ElementName = tabItem2, Path = IsEnabled, Dönüştürücü = {StaticResource newconverter}, ConverterParameter = Güncel araç metni buradadır}", yeni dönüştürücünün döndüğü yeni bir tür Değer true ise parametre değeri. Ya da sanırım davasında sanırım. (Ayrıca, bu sözdizimi kapalıysa, bu yüzden beni yazdığınız için beni affet) – JustABill