Ответ 1
Нет, у вас нет поддержки Trigger
в UWP.
Обходным путем является использование DataTriggerBehavior
с ChangePropertyAction
для выполнения той же самой вещи.
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>
Обратите внимание, что вам нужно включить BehaviorsXamlSDKManaged
из C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1\ExtensionSDKs\BehaviorsXamlSDKManaged\12.0\
. Когда вы добавите ссылку, вы получите предупреждение, но просто проигнорируете ее.
Update: Теперь вы должны получить обновленный SDK Behavior от nuget.
Вариант 2
Вы всегда можете сделать то же самое в VisualStateManager
. Откройте Blend и щелкните правой кнопкой мыши на Button
и выберите "Редактировать шаблон", "Редактировать копию", а затем укажите имя ресурса и нажмите "ОК".
Затем найдите отключенный VisualState
и замените его на
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Target="RootGrid.(UIElement.Opacity)" Value="0.5" />
</VisualState.Setters>
</VisualState>