private ControlTemplate SetControlTemplate(string color) { FrameworkElementFactory fe = new FrameworkElementFactory(typeof(CustomBorder), "CustomBorder"); fe.SetValue(Border.BackgroundProperty, new SolidColorBrush((Color)ColorConverter.ConvertFromString(color))); FrameworkElementFactory grid = new FrameworkElementFactory(typeof(Grid), "Grid"); grid.AppendChild(fe); ControlTemplate ct = new Controlemplate(); ct.VisualTree = grid; return ct; }
因为想要设置Button的MouseOver事件 修改Button的BackGround的值,但是不知道如何添加VisualStateManager,所以用了自定义控件CustomBorder
1: <Border x:Name="border">
2: <Border.Background>3: <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
4: <GradientStop Color="Black" Offset="0"/>
5: <GradientStop Color="White" Offset="1"/>
6: </LinearGradientBrush> 7: </Border.Background> 8: <VisualStateManager.VisualStateGroups>9: <VisualStateGroup x:Name="VisualStateGroup">
10: <VisualState x:Name="bdrMouseOver">
11: <Storyboard>12: <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[1].(GradientStop.Color)" Storyboard.TargetName="border">
13: <EasingColorKeyFrame KeyTime="0" Value="#FFA7A111"/>
14: </ColorAnimationUsingKeyFrames>15: <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[1].(GradientStop.Offset)" Storyboard.TargetName="border">
16: <EasingDoubleKeyFrame KeyTime="0" Value="0.295"/>
17: </DoubleAnimationUsingKeyFrames>18: <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[0].(GradientStop.Color)" Storyboard.TargetName="border">
19: <EasingColorKeyFrame KeyTime="0" Value="#FFFFF506"/>
20: </ColorAnimationUsingKeyFrames> 21: </Storyboard> 22: </VisualState>23: <VisualState x:Name="bdrNormal"/>
24: </VisualStateGroup> 25: </VisualStateManager.VisualStateGroups> 26: <i:Interaction.Triggers>27: <i:EventTrigger EventName="MouseEnter">
28: <ei:GoToStateAction StateName="bdrMouseOver"/>
29: </i:EventTrigger>30: <i:EventTrigger EventName="MouseLeave">
31: <ei:GoToStateAction StateName="bdrNormal"/>
32: </i:EventTrigger> 33: </i:Interaction.Triggers> 34: </Border>
这里定义了CustomBorder的MouseOver事件
浙公网安备 33010602011771号