Wpf 如何通过xaml更改动态资源值(例如触发器)
例如,我有一个元素的样式,我想用触发器更改特定的资源Wpf 如何通过xaml更改动态资源值(例如触发器),wpf,xaml,triggers,dynamicresource,Wpf,Xaml,Triggers,Dynamicresource,例如,我有一个元素的样式,我想用触发器更改特定的资源 <Style x:Key="MyStyle" TargetType="{x:Type Tree:MyListBox}"> <Style.Triggers> <DataTrigger Binding="{Binding Property}" Value="ItemSelected"> <Setter Property="MydinamicResourceKe
<Style x:Key="MyStyle" TargetType="{x:Type Tree:MyListBox}">
<Style.Triggers>
<DataTrigger Binding="{Binding Property}" Value="ItemSelected">
<Setter Property="MydinamicResourceKey" Value="NewValue"/>
</DataTrigger>
</Style.Triggers>
</Style>
可能吗?可以尝试使用VisualStateManager吗 这是我的一个想法
.... 更多代码在这里。。。。
我对这种类型的动画/改变有很多看法-我仍然经常提到它
希望这会有所帮助,并能让您朝着正确的方向前进。或许可以尝试使用VisualStateManager 这是我的一个想法
.... 更多代码在这里。。。。
我对这种类型的动画/改变有很多看法-我仍然经常提到它
希望这是有帮助的,可以让你朝着正确的方向前进。改变资源是不可能的。因此,可以通过两种方式对道具进行动态更改:来自Microsoft.Expression.Interactions()的DataTrigger或通过自定义绑定()更改资源是不可能的。因此,动态更改道具可以通过两种方式实现:来自Microsoft.Expression.Interactions()的DataTrigger或通过自定义绑定()
<Style x:Key="MyStyle" TargeType="{x:Type Tree:MyListBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Tree:MyListBox}">
<Border x:Name="Border">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="SelectionStates">
<VisualState x:Name="Unselected"/>
<VisualState x:Name="Selected">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="myUIElementName"
Storyboard.TargetProperty="myUIElementProperty">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{DynamicResource MyResourceKey}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
.... more code here....
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>