将wpf触发器转换为silverlight的最佳方法?
我在wpf应用程序中开发了几个使用触发器的自定义控件。转换代码的最快方法是什么,这样我就有了一个既适用于wpf应用程序又适用于silverlight应用程序的代码库。以下是代码示例:将wpf触发器转换为silverlight的最佳方法?,wpf,triggers,silverlight-4.0,Wpf,Triggers,Silverlight 4.0,我在wpf应用程序中开发了几个使用触发器的自定义控件。转换代码的最快方法是什么,这样我就有了一个既适用于wpf应用程序又适用于silverlight应用程序的代码库。以下是代码示例: <Style x:Key="sButtonAction" TargetType="Button"> <!--<Setter Property="BitmapEffect" Value="{StaticResource BannerEffect}" />--> <S
<Style x:Key="sButtonAction" TargetType="Button">
<!--<Setter Property="BitmapEffect" Value="{StaticResource BannerEffect}" />-->
<Setter Property="Height" Value="25" />
<Setter Property="Margin" Value="4" />
<Setter Property="Cursor" Value="Hand" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="PART_Border" CornerRadius="10"
BorderThickness="{StaticResource sBorderThicknessStandard}"
BorderBrush="{StaticResource bColorBorder}"
Background="{StaticResource ButtonActionBackground}">
<TextBlock x:Name="PART_TextBlock" Margin="5,2,5,2" HorizontalAlignment="Center"
VerticalAlignment="Center" Foreground="White">
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center" /></TextBlock>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="PART_TextBlock" Property="Foreground"
Value="#990000"></Setter>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="PART_Border" Property="Background"
Value="{StaticResource ButtonActionBackgroundSelected}"></Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
听起来很痛苦,更改触发器以使用
VisualStateManager
是最好的选择。它包含在WPF4.0中,如果您仍停留在早期版本上,您可以从codeplex中获取它
Silverlight不支持触发器很糟糕,但如果您需要同时支持这两种平台,我认为这是最好的选择