No, non si dispone del supporto Trigger
in UWP.
Una soluzione alternativa consiste nell'utilizzare DataTriggerBehavior
con un ChangePropertyAction
per ottenere la stessa identica cosa.
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>
Nota che sarà necessario includere
BehaviorsXamlSDKManaged
da
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1\ExtensionSDKs\BehaviorsXamlSDKManaged\12.0\
. Riceverai un avviso quando aggiungi il riferimento ma lo ignori.
Aggiornamento: Si dovrebbe essere sempre una versione aggiornata Comportamento SDK da nuget ora.
Opzione 2
Si può sempre fare la stessa cosa in VisualStateManager
. Aprire Miscela e fare clic destro sul vostro Button
e selezionare Modifica modello , Modifica copia e quindi specificare il nome della risorsa che si desidera e ha colpito OK.
quindi cercare il disabiliVisualState
e sostituirlo con
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Target="RootGrid.(UIElement.Opacity)" Value="0.5" />
</VisualState.Setters>
</VisualState>
fonte
2015-08-11 04:59:39
Hai ragione circa la mancanza di trigger in UWP. Sono più abituato a WPF e non mi ero reso conto di averlo fatto. Un po 'di coerenza tra le piattaforme sarebbe stato bello! –
@GlenThomas totalmente d'accordo. Guarda l'enorme quantità di codice sopra rispetto a WPF. :) –
Mi aspetto che vedano VisualStateManager come una sostituzione –