Nein, Sie haben keine Trigger
Unterstützung in UWP.
Eine Problemumgehung besteht darin, DataTriggerBehavior
mit einer ChangePropertyAction
zu verwenden, um genau dasselbe zu erreichen.
xmlns:Interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:Core="using:Microsoft.Xaml.Interactions.Core"
<Button x:Name="MyButton" Width="140" Height="80" IsEnabled="False">
<Image x:Name="MyImage" Source="Assets/xxx.jpg">
<Interactivity:Interaction.Behaviors>
<Core:DataTriggerBehavior Binding="{Binding IsEnabled, ElementName=MyButton}" Value="False">
<Core:ChangePropertyAction TargetObject="{Binding ElementName=MyImage}" PropertyName="Opacity" Value="0.5" />
</Core:DataTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</Image>
</Button>
Beachten Sie, dass Sie benötigen
BehaviorsXamlSDKManaged
von
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1\ExtensionSDKs\BehaviorsXamlSDKManaged\12.0\
aufzunehmen. Sie erhalten eine Warnung, wenn Sie die Referenz hinzufügen, aber ignorieren Sie sie einfach.
Update: Sie sollten eine aktualisierte Verhalten SDK von nuget jetzt bekommen.
Option 2
Sie können die gleiche Sache in VisualStateManager
immer tun. Öffnen Mischung und klicken Sie rechts auf Ihrem Button
und wählen Vorlage bearbeiten, Bearbeiten Sie eine Kopie und geben Sie dann den Namen der Ressource Sie möchten und klicken Sie auf OK .
Dann sind für die BehinderteVisualState
und ersetzen sie durch
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Target="RootGrid.(UIElement.Opacity)" Value="0.5" />
</VisualState.Setters>
</VisualState>
Du hast Recht über den Mangel von Triggern in UWP. Ich bin mehr an WPF gewöhnt und wusste nicht, dass sie das getan haben. Ein bisschen Konsistenz zwischen den Plattformen wäre schön gewesen! –
@GlenThomas stimme völlig zu. Sehen Sie sich die große Menge an Code an, die Sie im Vergleich zu WPF gesehen haben. :) –
Ich erwarte, dass sie den VisualStateManager als Ersatz sehen –