相当于silverlight中的WPF ControlTemplate.Triggers

时间:2011-11-17 07:52:14

标签: c# wpf xaml silverlight-4.0

以下是我的WPF ControlTemplate.Triggers,我已经使用Interactivity.Interaction.Triggers更改了Silverlight中的代码,但它无法正常工作。 任何人都可以帮助我。

WPF代码:

<ControlTemplate.Triggers>
                    <Trigger Property="HasItems" Value="false">
                        <Setter TargetName="DropDownBorder" Property="MinHeight" Value="95"/>
                    </Trigger>
                    <Trigger Property="IsEnabled" Value="false">
                        <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
                    </Trigger>
                    <Trigger Property="IsGrouping" Value="true">
                        <Setter Property="ScrollViewer.CanContentScroll" Value="false"/>
                    </Trigger>
                    <Trigger SourceName="Popup" Property="Popup.AllowsTransparency" Value="true">
                        <Setter TargetName="DropDownBorder" Property="CornerRadius" Value="4"/>
                        <Setter TargetName="DropDownBorder" Property="Margin" Value="0,2,0,0"/>
                    </Trigger>
                    <Trigger Property="IsEditable"
                   Value="true">
                        <Setter Property="IsTabStop" Value="false"/>
                        <Setter TargetName="EditableTextBox" Property="Visibility"    Value="Visible"/>
                        <Setter TargetName="Presenter" Property="Visibility" Value="Hidden"/>
                    </Trigger>
                </ControlTemplate.Triggers>

我的Silverligh代码:

   <i:Interaction.Triggers>                   
                    <i:EventTrigger EventName="HasItems" >
                        <ic:ChangePropertyAction TargetName="DropDownBorder" PropertyName="MinHeight" Value="95" />
                    </i:EventTrigger>

                    <i:EventTrigger SourceName="Popup" >
                        <ic:ChangePropertyAction TargetName="DropDownBorder" PropertyName="CornerRadius" Value="4" />
                        <ic:ChangePropertyAction TargetName="DropDownBorder" PropertyName="Margin" Value="0,2,0,0"/>
                    </i:EventTrigger>

                    <i:EventTrigger EventName="Popup.AllowsTransparency">
                        <ic:ChangePropertyAction TargetName="Border" PropertyName="Background" Value="{StaticResource DisabledBackgroundBrush}" />
                        <ic:ChangePropertyAction TargetName="Border" PropertyName="BorderBrush" Value="{StaticResource DisabledBackgroundBrush}" />
                        <ic:ChangePropertyAction TargetName="Border" PropertyName="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
                    </i:EventTrigger>
                </i:Interaction.Triggers>

提前致谢!!!

2 个答案:

答案 0 :(得分:0)

看看你的Silverlignt代码,我得到的一件事就是......

 <i:EventTrigger EventName="HasItems" >    
                     <ic:ChangePropertyAction TargetName="DropDownBorder"    
                      PropertyName="MinHeight" Value="95" />                     
</i:EventTrigger> 

我相信HasItems不是一个属性

的事件

Check this Answer and the comments too :)这个link也可能有所帮助......

答案 1 :(得分:0)

看起来你需要使用Microsoft.Expression.Interactivity.Core.DataTrigger(相当于Trigger)而不是EventTrigger。