Jak mogę się upewnić, że etykieta narzędzia przycisku jest widoczna tylko wtedy, gdy przycisk jest wyłączony?Widget WSF Widget narzędziowy
Co mogę powiązać z widocznością podpowiedzi?
Jak mogę się upewnić, że etykieta narzędzia przycisku jest widoczna tylko wtedy, gdy przycisk jest wyłączony?Widget WSF Widget narzędziowy
Co mogę powiązać z widocznością podpowiedzi?
Musisz ustawić ToolTipService.ShowOnDisabled na wartość True na przycisku, aby w ogóle pojawiła się wskazówka, gdy przycisk jest wyłączony. Możesz powiązać ToolTipService.IsEnabled na przycisku, aby włączyć lub wyłączyć etykietę narzędziową.
Dla każdego, kto chce robić to samo co ja, opublikowałem pełne xaml dla przycisku jako odpowiedzi. Dzięki za pomoc. –
Jest to pełna XAML przycisku (na podstawie odpowiedzi na @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."/>
nieco zmodyfikowaną odpowiedź na to, co David Ward zaproponowała. Oto pełny kod
Dodaj konwerter wartości do resouces jak ten
<Window.Resources>
<Converters:NegateConverter x:Key="negateConverter"/>
</Window.Resources>
Następnie zdefiniować następujące 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"/>
Konwerter wartość wygląda to
[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();
}
}
Można zrób to również za pomocą prostego wyzwalacza. Wystarczy umieścić następujący fragment kodu w oknie.
<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>
To było przydatne, aby zobaczyć składnię do ustawienia 'ShowOnDisabled' za pomocą settera' Style'. – mungflesh
Kiedy "IS" jest wyłączone? - Czy masz na myśli "nie jest" wyłączony? – 4imble
Może być sens wyświetlania etykiety narzędziowej opisującej, dlaczego nie można dotknąć tego przycisku. Jeśli to jest zamiar Davida, myślę, że to ma sens. – reuscam
Tak, tak myślę, nie byłem wybredny. Byłem po prostu naprawdę zainteresowany :) – 4imble