20
A
回答
28
您需要在按钮上将ToolTipService.ShowOnDisabled设置为True才能在禁用Button时使Tooltip可见。您可以在按钮上绑定ToolTipService.IsEnabled以启用和禁用工具提示。
+1
对于任何想和我做同样事情的人,我已经发布了按钮的完整xaml作为答案。 感谢您的帮助。 – 2010-06-30 13:54:41
20
这是按钮全XAML(基于@Quartermeister的答案)
<Button
x:Name="btnAdd"
Content="Add"
ToolTipService.ShowOnDisabled="True"
ToolTipService.IsEnabled="{Binding ElementName=btnAdd, Path=IsEnabled, Converter={StaticResource boolToOppositeBoolConverter}}"
ToolTip="Appointments cannot be added whilst the event has outstanding changes."/>
3
稍微修改回答什么大卫沃德建议。下面是完整的代码
添加值转换器resouces这样
<Window.Resources>
<Converters:NegateConverter x:Key="negateConverter"/>
</Window.Resources>
然后定义下面的XAML
<Button
x:Name="btnAdd"
Content="Add"
ToolTipService.ShowOnDisabled="True"
ToolTipService.IsEnabled="{Binding RelativeSource={RelativeSource self}, Path=IsEnabled, Converter={StaticResource negateConverter}}"
ToolTip="Hi guys this is the tool tip"/>
值变换器看起来像这样
[ValueConversion(typeof(bool), typeof(bool))]
public class NegateConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return !((bool)value);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
8
你可以也使用简单的触发器来做到这一点。只需将下面的一段代码放入一个窗口即可。
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center">
<CheckBox Name="chkDisabler" Content="Enable/disable button" Margin="10" />
<Button Content="Hit me" Width="200" Height="100" IsEnabled="{Binding ElementName=chkDisabler, Path=IsChecked}">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="ToolTipService.ShowOnDisabled" Value="true" />
<Setter Property="ToolTip" Value="{x:Null}" />
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="ToolTip" Value="Hi, there! I'm disabled!" />
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</StackPanel>
+0
通过'Style'设置器,可以方便地查看设置'ShowOnDisabled'的语法。 – mungflesh 2016-08-12 10:55:43
相关问题
- 1. 向WPF控件添加条件可见性工具提示
- 2. 通过不可见控件/按钮显示工具提示WPF
- 3. 工具提示能见度
- 4. 工具提示中的元素可见性
- 5. ListViewItem工具提示WPF
- 6. WPF工具提示定位
- 7. WPF图像工具提示
- 8. WPF DataGridTextColumn工具提示
- 9. WPF工具提示绑定
- 10. WPF工具包数据列可见性绑定
- 11. WPF - 显示文本框工具提示
- 12. AjaxControl工具包TabContainer可见性问题
- 13. 工具栏的控件可见性
- 14. C#WPF:更改工具提示的PlacementTarget
- 15. WPF工具提示与控件
- 16. 如何禁用WPF工具提示?
- 17. 工具提示中的WPF DataContext
- 18. WPF工具提示最佳实践
- 19. WPF绑定到工具提示
- 20. WPF工具提示绑定不更新
- 21. Wpf/SL图表 - 饼图工具提示
- 22. 在WPF中重写工具提示
- 23. WPF自定义验证工具提示
- 24. 控件上的工具提示WPF
- 25. wpf - 动态复杂工具提示
- 26. WPF:填充路径的工具提示
- 27. HighCharts:通过工具提示可见的标签
- 28. Silverlight工具提示保持与鼠标悬停可见
- 29. Highcharts:如何使工具提示位置在视口中可见
- 30. 工具提示对于禁用不可见控件在JAVA SWT
何时“禁用”? - 你的意思是“不是”禁用? – 4imble 2010-06-30 12:15:31
显示工具提示可能会有意义,说明您无法触摸此按钮的原因。如果这是戴维的意图,我认为这很有道理。 – reuscam 2010-06-30 12:17:57
是的,我想是的,我没有挑剔。我只是真正感兴趣:) – 4imble 2010-06-30 12:20:38