Hier habe ich diese Umschaltfläche, wie in Code unten gesehen. A control template
ist auch für diese Umschaltfläche definiert. In einigen Szenarien wird diese Schaltfläche deaktiviert. dh ich cannot click
auf dem Knopf mehr. Ich folge MVVM
Muster. Ich habe Haltepunkte gesetzt und überprüft. Es gibt nichts im Zusammenhang mit dem Ändern der Tasten IsEnabled
Zustand.Kann nicht herausfinden, wie die Umschalttaste deaktiviert wird
Seit den letzten 1 Stunde versuche ich herauszufinden, wie der Aktivierungszustand der Taste geändert wird. Es gibt nichts, was sich auf die aktivierte Statusänderung der Schaltfläche bezieht, oder irgendetwas, das mit dem Code dahinter zusammenhängt. Daher poste ich hier keinen unerwünschten Code hinter/zeige den Modellcode an.
Wenn Sie mir helfen können, herauszufinden, aus dem XAML-Code, wie der Button-Status zu deaktiviert geändert wird, oder welche Eigenschaft zu dieser Änderung führt, wird es sehr hilfreich sein. Danke im Voraus.
<ToggleButton x:Name="TestBtn"
Height="60"
Margin="5"
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Center"
Command="{Binding StartStopResetCommand}"
Content="{Binding BtnState,
Converter={StaticResource BtnTextConverter}}"
FontSize="16"
Foreground="White"
PreviewKeyDown="BtnPreviewKeyDown">
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Border x:Name="border"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness=".5"
SnapsToDevicePixels="true">
<ContentPresenter x:Name="contentPresenter"
Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
Focusable="False"
RecognizesAccessKey="True"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter TargetName="contentPresenter" Property="TextElement.Foreground" Value="#595959" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding BtnState}" Value="{x:Static my:ButtonState.Start}">
<Setter Property="Background" Value="{StaticResource ButtonBackgroundBrush}" />
</DataTrigger>
<DataTrigger Binding="{Binding BtnState}" Value="{x:Static my:ButtonState.Stop}">
<Setter Property="Background" Value="{StaticResource ExecutingStateColor}" />
</DataTrigger>
<DataTrigger Binding="{Binding BtnState}" Value="{x:Static my:ButtonState.Reset}">
<Setter Property="Background" Value="{StaticResource ButtonBackgroundBrush}" />
</DataTrigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
Button-Status kann automatisch geändert werden, wenn Ihr "StartStopResetCommand" Aktion "CanExecute" implementiert und an einem bestimmten Zeitpunkt false zurückgibt. – Matas
** Upvote. ** So schnell und präzise. Von so etwas wusste ich noch nichts. Vielen Dank. – ViVi