欢迎投稿

今日深度:

用SQL Server和XML学习Silverlight 2(1)(3)

Silverlight 2自定义触发按钮控制器模板

<!-- ToggleButton Control Template -->
     <ControlTemplate TargetType="ToggleButton">
     <Grid x:Name="RootElement">
     <Grid.Resources>
<!-- Visual constants used by the template -->
     <Color x:Key="BaseColor">#FF003255</Color>
     <Color x:Key="LinearBevelLightStartColor">#FCFFFFFF
     </Color>     <Color x:Key="LinearBevelLightEndColor">#F4FFFFFF</Color>
     <Color x:Key="LinearBevelDarkStartColor">#E0FFFFFF</Color>
     <Color x:Key="LinearBevelDarkEndColor">#B2FFFFFF</Color>
     <Color x:Key="MouseOverLinearBevelDarkEndColor">
          #7FFFFFFF</Color>
     <Color x:Key="HoverLinearBevelLightStartColor">
          #FCFFFFFF</Color>
     <Color x:Key
          ="HoverLinearBevelLightEndColor">
          #EAFFFFFF</Color>
     <Color x:Key="HoverLinearBevelDarkStartColor">#D8FFFFFF</Color>
     <Color x:Key="HoverLinearBevelDarkEndColor">#4CFFFFFF</Color>
     <Color x:Key="CheckedLinearBevelLightStartColor">#FCFFFFFF</Color>
     <Color x:Key="CheckedLinearBevelLightEndColor">#EAFFFFFF</Color>
     <Color x:Key="CheckedLinearBevelDarkStartColor">#D8FFFFFF</Color>
     <Color x:Key="CheckedLinearBevelDarkEndColor">#4CFFFFFF</Color>
     <Color x:Key="CurvedBevelFillStartColor">#B3FFFFFF</Color>
     <Color x:Key="CurvedBevelFillEndColor">#3CFFFFFF</Color>
     <Color x:Key="HoverPressedCurvedBevelFillStartColor">#6FFFFFFF</Color>
     <Color x:Key="HoverPressedCurvedBevelFillEndColor">#39FFFFFF</Color>
     <Color x:Key="ArrowColor">#FF000000</Color>
     <Color x:Key="ArrowActiveColor">#FF00B300</Color>
     <Color x:Key="ArrowHoverColor">#FFFF0000</Color>
     <SolidColorBrush x:Key="BorderBrush" Color="#FF000000" /> 
     <SolidColorBrush x:Key="AccentBrush" Color="#FFFFFFFF" />
     <SolidColorBrush x:Key="DisabledBrush" Color="#A5FFFFFF" />
     <LinearGradientBrush x:Key="FocusedStrokeBrush" 
          StartPoint="0.5,0"Endpoint="0.5,1">
     <GradientStop Color="#B2FFFFFF" Offset="0" />
     <GradientStop Color="#51FFFFFF" Offset="1" />
     <GradientStop Color="#66FFFFFF" Offset="0.325" />
     <GradientStop Color="#1EFFFFFF" Offset="0.325" />
     </LinearGradientBrush>
     </Grid.Resources>
<!-- Visual states of the togglebutton template -->
     <vsm:VisualStateManager.VisualStateGroups>
     <vsm:VisualStateGroup x:Name="CheckedMouseStates">
     <vsm:VisualState x:Name="MouseLeave">
     <Storyboard>
     <ColorAnimation Duration="0:0:0.1" Storyboard.TargetName="ArrowBrush" 
     Storyboard.TargetProperty="Color" To="{StaticResource
     ArrowColor}" />
     </Storyboard>
     </vsm:VisualState>

     <vsm:VisualState x:Name="MouseEnter">
     <Storyboard>
     <ColorAnimation Duration="0:0:0.1" 
Storyboard.TargetName="ArrowBrush" 
     Storyboard.TargetProperty="Color" To="{StaticResource 
ArrowHoverColor}" />
     </Storyboard>
     </vsm:VisualState>
     </vsm:VisualStateGroup>
     <vsm:VisualStateGroup x:Name="CommonStates">
     <vsm:VisualStateGroup.Transitions>
     <vsm:VisualTransition To="MouseOver" Duration="0:0:0.2" />
     <vsm:VisualTransition To="Pressed" Duration="0:0:0.1" />
     </vsm:VisualStateGroup.Transitions>
     <vsm:VisualState x:Name="Normal" />

     <vsm:VisualState x:Name="MouseOver">
     <Storyboard>
     <ColorAnimation Storyboard.TargetName="LinearBevelDarkEnd" 
Storyboard.TargetProperty="Color" To="{StaticResource
MouseOverLinearBevelDarkEndColor}"
Duration="0" />
     </Storyboard>
     </vsm:VisualState>
     <vsm:VisualState x:Name="Pressed">
     <Storyboard>
     <DoubleAnimation Storyboard.TargetName="LinearBevelLightEnd" 
Storyboard.TargetProperty="Offset" To=".2" Duration="0" />
     <ColorAnimation Storyboard.TargetName="LinearBevelLightStart"
Storyboard.TargetProperty="Color" To="{
StaticResource HoverLinearBevelLightEndColor}"
Duration="0" /><ColorAnimation Storyboard.TargetName="LinearBevelLightEnd" 
Storyboard.TargetProperty="Color" To="{
StaticResource
HoverLinearBevelLightEndColor}" 
Duration="0" />
     <ColorAnimation Storyboard.TargetName="LinearBevelDarkStart" 
Storyboard.TargetProperty="Color" To="{
StaticResource HoverLinearBevelDarkStartColor}"Duration="0" />
     <ColorAnimation Storyboard.TargetName="LinearBevelDarkEnd" 
Storyboard.TargetProperty="Color" 
To="{
StaticResource HoverLinearBevelDarkEndColor}" Duration="0" />
      <DoubleAnimation Storyboard.TargetName="DownStroke" 
Storyboard.TargetProperty="Opacity" To="1" Duration="0" />
     </Storyboard>
     </vsm:VisualState>
     <vsm:VisualState x:Name="Disabled">
     <Storyboard>
     <Storyboard.TargetName="DisabledVisual" 
Storyboard.TargetProperty="Opacity" 
To="1" Duration="0" />
     </Storyboard>
     </vsm:VisualState>
     </vsm:VisualStateGroup>
     <vsm:VisualStateGroup x:Name="CheckStates">
     <vsm:VisualStateGroup.Transitions>
     <vsm:VisualTransition Duration="0:0:0.1" />
     </vsm:VisualStateGroup.Transitions>
     <vsm:VisualState x:Name="Checked">
     <Storyboard>
     <DoubleAnimation Storyboard.TargetName="DownStroke" 
Storyboard.TargetProperty="Opacity" To="1" Duration="0" />
     <DoubleAnimation Storyboard.TargetName="FocusVisualElement" 
Storyboard.TargetProperty="Opacity" To="0" Duration="0" />
     <ColorAnimation  Storyboard.TargetName="ArrowBrush" 
Storyboard.TargetProperty="Color" To="{
StaticResource ArrowActiveColor}" Duration="0"/>
     </Storyboard>
     </vsm:VisualState>
     <vsm:VisualState x:Name="Unchecked">
      <Storyboard>
      <DoubleAnimation Storyboard.TargetName="LinearBevelLightEnd"
Storyboard.TargetProperty ="Offset" To="0.35" Duration="0" />
     </Storyboard>
     </vsm:VisualState>
     <vsm:VisualState x:Name="Indeterminate">
     <Storyboard>
     <DoubleAnimation Storyboard.TargetName="LinearBevelLightEnd" 
Storyboard.TargetProperty ="Offset" To="0.2" 
Duration="0" />
     <DoubleAnimation Storyboard.TargetName
="IndeterminateNormal" Storyboard.TargetProperty="Opacity" To="1" Duration="0" />
     </Storyboard>
      </vsm:VisualState>
     </vsm:VisualStateGroup>
     <vsm:VisualStateGroup x:Name="FocusStates">
     <vsm:VisualState x:Name="Focused">
     <Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName
="FocusVisualElement" 
Storyboard.TargetProperty="Visibility"Duration="0">
     <DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<Visibility>Visible</Visibility>
</DiscreteObjectKeyFrame.Value>
     </DiscreteObjectKeyFrame>
     </ObjectAnimationUsingKeyFrames>
     </Storyboard>
     </vsm:VisualState>
     <vsm:VisualState x:Name="Unfocused">
     <Storyboard>
     <ObjectAnimationUsingKeyFrames Storyboard.TargetName
="FocusVisualElement" 
Storyboard.TargetProperty="Visibility"Duration="0">
     <DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value><Visibility>Collapsed</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
     </ObjectAnimationUsingKeyFrames>
     </Storyboard>
     </vsm:VisualState>
     </vsm:VisualStateGroup>
     </vsm:VisualStateManager.VisualStateGroups>
     <Rectangle RadiusX="1" 
RadiusY="1" Margin="1,2,1.5,2" StrokeThickness="1">
     <Rectangle.Fill>
     <LinearGradientBrush StartPoint="0.7,0" Endpoint="0.7,1">
     <GradientStop x:Name="LinearBevelLightStart" Color="{
StaticResource LinearBevelLightStartColor}" Offset="0" />
     <GradientStop x:Name="LinearBevelLightEnd" Color="{
StaticResource LinearBevelLightEndColor}" Offset="0.35" />
     <GradientStop x:Name="LinearBevelDarkStart" Color="{
StaticResource LinearBevelDarkStartColor}" Offset="0.35" />
     <GradientStop x:Name="LinearBevelDarkEnd" 
Color="{
StaticResource LinearBevelDarkEndColor}" Offset="1" />
     </LinearGradientBrush>
     </Rectangle.Fill>
     </Rectangle>
     <Grid x:Name="CurvedBevelScale" Margin="2">
     <Grid.RowDefinitions>
     <RowDefinition Height="7*" />
     <RowDefinition Height="3*" />
     </Grid.RowDefinitions>
      <Path x:Name="CurvedBevel" Stretch="Fill" Margin="1.5,1,1.5,2" 
Data="F1 M0,0.02 L0,0.15 
C0.15,0.22 0.3,0.25 0.5,0.25 0.7,0.25 0.85,
0.22 1,0.15 L1,0.02 1,0 0.02,0 0,0.02 z">
     <Path.Fill>
      <LinearGradientBrush StartPoint="0.5,0" Endpoint="0.5,1">
     <GradientStop x:Name="CurvedBevelFillStart" Color="{
StaticResource CurvedBevelFillStartColor}" Offset="0" />
     <GradientStop x:Name="CurvedBevelFillEnd" Color="{
StaticResource CurvedBevelFillEndColor}" Offset="1" />
     </LinearGradientBrush>
     </Path.Fill>
     </Path>
     </Grid>
     <Grid x:Name
="FocusVisualElement" Visibility="Collapsed">
     </Grid>
     <Grid x:Name="CheckedNormal" Opacity="0">
     <Rectangle Stroke="{TemplateBinding Background}" RadiusX="1" 
RadiusY="1" StrokeThickness="1" Opacity="0.05" Margin="1.5,2.5,1.5,1.5" />
     <Rectangle Stroke="{TemplateBinding Background}" RadiusX="1" 
RadiusY="1" StrokeThickness="1" Opacity="0.05" Margin="1.5,2.25,1.5,1.5" />
     <Rectangle Stroke="{TemplateBinding Background}" RadiusX="1" 
RadiusY="1" StrokeThickness="1" Opacity="0.05" Margin="1.5,2,1.5,1.5" />
     <Rectangle Stroke="{TemplateBinding Background}" RadiusX="1" 
RadiusY="1" StrokeThickness="1" Opacity="0.05" Margin="1.5,1.75,1.5,1.5" />
     <Rectangle Stroke="{TemplateBinding Background}" RadiusX="1" 
RadiusY="1" StrokeThickness="1" Opacity="1" Margin="1" />
      <Rectangle RadiusX="1" 
RadiusY="1" StrokeThickness="1" Margin="1" >
     <Rectangle.Stroke>
     <LinearGradientBrush Endpoint="0.5,1" StartPoint="0.5,0">
     <GradientStop Color="#A5FFFFFF" Offset="0" />
     <GradientStop Color="#FFFFFFFF" Offset="1" />
     </LinearGradientBrush>
     </Rectangle.Stroke>
     </Rectangle>
     </Grid>
     <Grid x:Name="CheckedPressed" Opacity="0">
     <Rectangle Stroke="{TemplateBinding Background}"  RadiusX="1" 
RadiusY="1" StrokeThickness="1" Opacity="0.05" Margin="1.5,2.5,1.5,1.5" />
     <Rectangle Stroke="{TemplateBinding Background}"  RadiusX="1" 
RadiusY="1" StrokeThickness="1" Opacity="0.05" Margin="1.5,2.25,1.5,1.5" />
      <Rectangle Stroke="{TemplateBinding Background}"  RadiusX="1" 
RadiusY="1" StrokeThickness="1" Opacity="0.05" Margin="1.5,2,1.5,1.5" />
     <Rectangle Stroke="{TemplateBinding Background}"  RadiusX="1" 
RadiusY="1" StrokeThickness="1" Opacity="0.05" Margin="1.5,1.75,1.5,1.5" />
     <Rectangle Stroke="{TemplateBinding Background}"  RadiusX="1" 
RadiusY="1" StrokeThickness="1" Opacity="1" Margin="1" />
     <Rectangle RadiusX="1" 
RadiusY="1" StrokeThickness="1" Margin="1">
     <Rectangle.Stroke>
     <LinearGradientBrush Endpoint="0.5,1" StartPoint="0.5,0">
     <GradientStop Color="#A5FFFFFF" Offset="0" />
     <GradientStop Color="#FFFFFFFF" Offset="1" />
     </LinearGradientBrush>
      </Rectangle.Stroke>
      </Rectangle>
     </Grid>
     <Grid x:Name="IndeterminateNormal" Opacity="0">
      <Rectangle Stroke="{TemplateBinding Background}"  RadiusX="1" 
RadiusY="1" StrokeThickness="1" Opacity="0.05" Margin="1.5,2.5,1.5,1.5" />
      <Rectangle Stroke="{TemplateBinding Background}"  RadiusX="1" 
RadiusY="1" StrokeThickness="1" Opacity="0.05" Margin="1.5,2.25,1.5,1.5" />
      <Rectangle Stroke="{TemplateBinding Background}"  RadiusX="1" 
RadiusY="1" StrokeThickness="1" Opacity="0.05" Margin="1.5,2,1.5,1.5" />
      <Rectangle Stroke="{TemplateBinding Background}"  RadiusX="1" 
RadiusY="1" StrokeThickness="1" Opacity="0.05" Margin="1.5,1.75,1.5,1.5" />
      <Rectangle Stroke="{TemplateBinding Background}"  RadiusX="1" 
RadiusY="1" StrokeThickness="1" Opacity="1" Margin="1" />
     <Rectangle RadiusX="1" 
RadiusY="1" StrokeThickness="1" Margin="1">
     <Rectangle.Stroke>
     <LinearGradientBrush Endpoint="0.5,1" StartPoint="0.5,0">
     <GradientStop Color="#A5FFFFFF" Offset="0" />
      <GradientStop Color="#FFFFFFFF" Offset="1" />
      </LinearGradientBrush>
      </Rectangle.Stroke>
      </Rectangle>
       </Grid>
       <Grid x:Name="IndeterminatePressed" Opacity="0">
      <Rectangle Stroke="{TemplateBinding Background}"  RadiusX="1" 
RadiusY="1" StrokeThickness="1" Opacity="0.05" Margin="1.5,2.5,1.5,1.5" />
     <Rectangle Stroke="{TemplateBinding Background}" RadiusX="1"
RadiusY="1"StrokeThickness="1"Opacity="0.05" Margin="1.5,2.25,1.5,1.5" />
      <Rectangle Stroke="{TemplateBinding Background}" RadiusX="1"
RadiusY="1"StrokeThickness="1"Opacity="0.05" Margin="1.5,2,1.5,1.5" />
      <Rectangle Stroke="{TemplateBinding Background}" RadiusX="1"
RadiusY="1"StrokeThickness="1"Opacity="0.05" Margin="1.5,1.75,1.5,1.5" />
      <Rectangle Stroke="{TemplateBinding Background}" RadiusX="1"
RadiusY="1"StrokeThickness="1"Opacity="1"Margin="1" />
     <Rectangle RadiusX="1"
RadiusY="1"StrokeThickness="1"Margin="1">
      <Rectangle.Stroke>
      <LinearGradientBrush Endpoint="0.5,1" StartPoint="0.5,0">
      <GradientStop Color="#A5FFFFFF" Offset="0" />
      <GradientStop Color="#FFFFFFFF" Offset="1" />
      </LinearGradientBrush>
      </Rectangle.Stroke>
      </Rectangle>
      </Grid>
      <Grid x:Name="DownStroke" Opacity="0">
      <Rectangle Stroke="{TemplateBinding Background}" RadiusX="1"
RadiusY="1"StrokeThickness="1"Opacity="0.05" Margin="1.5,2.5,1.5,1.5" />
      <Rectangle Stroke="{TemplateBinding Background}" RadiusX="1"
RadiusY="1"StrokeThickness="1"Opacity="0.05" Margin="1.5,2.25,1.5,1.5" />
      <Rectangle Stroke="{TemplateBinding Background}" RadiusX="1"
RadiusY="1"StrokeThickness="1"Opacity="0.05" Margin="1.5,2,1.5,1.5" />
     <Rectangle Stroke="{TemplateBinding Background}" RadiusX="1"
RadiusY="1"StrokeThickness="1"Opacity="0.05" Margin="1.5,1.75,1.5,1.5" />
      <Rectangle Stroke="{TemplateBinding Background}" RadiusX="1"
RadiusY="1"StrokeThickness="1"Opacity="1" Margin="1" />
     <Rectangle RadiusX="1" 
RadiusY="1" StrokeThickness="1" Margin="1">
     <Rectangle.Stroke>
     <LinearGradientBrush Endpoint="0.5,1" StartPoint="0.5,0">
     <GradientStop Color="#A5FFFFFF" Offset="0" />
     <GradientStop Color="#FFFFFFFF" Offset="1" />
     </LinearGradientBrush>
     </Rectangle.Stroke>
     </Rectangle>
     </Grid>
<!-- ToggleButton content -->
     <Grid>
      <Path Margin="0,0,0,0" HorizontalAlignment="Center" 
VerticalAlignment="Center" Data="M 0,0 L 3.5,4 L 7,0 Z">
      <Path.Fill>
     <SolidColorBrush x:Name="ArrowBrush" Color="{
StaticResource ArrowColor}"/>
     </Path.Fill>
      </Path>
      </Grid>
     </Grid>
      </ControlTemplate>


www.htsjk.Com true http://www.htsjk.com/shujukujc/19157.html NewsArticle Silverlight 2自定义触发按钮控制器模板 <!-- ToggleButton Control Template --> <ControlTemplate TargetType="ToggleButton"> <Grid x:Name="RootElement"> <Grid.Resources><!--...
评论暂时关闭