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