none
Expander 控件前面那个小图标的问题 RRS feed

答案

  • 可以自己画Path呀,编辑自定义模板就可以了
    <Path Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" x:Name="arrow" Stroke="#666" StrokeThickness="2" VerticalAlignment="Center" />
    编辑这个Path就可以了,换上你想用的图标,路径颜色

    <UserControl
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
        xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" x:Class="Social.ExpanderLogo.MainPage"
        Width="400" Height="300" mc:Ignorable="d">
    	<UserControl.Resources>
    		<ControlTemplate x:Key="ExpanderControlTemplate1" TargetType="controls:Expander">
    			<Grid Background="Transparent">
    				<Grid.Resources>
    					<LinearGradientBrush x:Key="ExpanderArrowFill" EndPoint="0,1" StartPoint="0,0">
    						<GradientStop Color="White" Offset="0" />
    						<GradientStop Color="#FFBFBFBF" Offset="0.5" />
    						<GradientStop Color="#FF878787" Offset="1" />
    					</LinearGradientBrush>
    					<LinearGradientBrush x:Key="ExpanderArrowHoverFill" EndPoint="0,1" StartPoint="0,0">
    						<GradientStop Color="#FFF0F8FE" Offset="0" />
    						<GradientStop Color="#FFE0F3FE" Offset="0.3" />
    						<GradientStop Color="#FF6FA7C5" Offset="1" />
    					</LinearGradientBrush>
    					<LinearGradientBrush x:Key="ExpanderArrowPressedFill" EndPoint="0,1" StartPoint="0,0">
    						<GradientStop Color="#FFDCF0FA" Offset="0" />
    						<GradientStop Color="#FFC5E6F7" Offset="0.2" />
    						<GradientStop Color="#FF5690D0" Offset="1" />
    					</LinearGradientBrush>
    					<ControlTemplate x:Key="ExpanderDownHeaderTemplate" TargetType="ToggleButton">
    						<Grid Background="Transparent">
    							<vsm:VisualStateManager.VisualStateGroups>
    								<vsm:VisualStateGroup x:Name="CheckStates">
    									<vsm:VisualStateGroup.Transitions>
    										<vsm:VisualTransition GeneratedDuration="00:00:00" />
    									</vsm:VisualStateGroup.Transitions>
    									<vsm:VisualState x:Name="Checked">
    										<Storyboard>
    											<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="Data">
    												<DiscreteObjectKeyFrame KeyTime="0" Value="M 1,4.5 L 4.5,1 L 8,4.5" />
    											</ObjectAnimationUsingKeyFrames>
    										</Storyboard>
    									</vsm:VisualState>
    									<vsm:VisualState x:Name="Unchecked" />
    								</vsm:VisualStateGroup>
    								<vsm:VisualStateGroup x:Name="CommonStates">
    									<vsm:VisualStateGroup.Transitions>
    										<vsm:VisualTransition GeneratedDuration="0" />
    										<vsm:VisualTransition GeneratedDuration="00:00:00.1" To="MouseOver" />
    										<vsm:VisualTransition GeneratedDuration="00:00:00.1" To="Pressed" />
    									</vsm:VisualStateGroup.Transitions>
    									<vsm:VisualState x:Name="Normal" />
    									<vsm:VisualState x:Name="MouseOver">
    										<Storyboard>
    											<ColorAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Stroke).(SolidColorBrush.Color)" To="#FF3C7FB1" />
    											<ObjectAnimationUsingKeyFrames Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Fill)">
    												<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ExpanderArrowHoverFill}" />
    											</ObjectAnimationUsingKeyFrames>
    											<ColorAnimation BeginTime="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="(Path.Stroke).(SolidColorBrush.Color)" To="#222" />
    										</Storyboard>
    									</vsm:VisualState>
    									<vsm:VisualState x:Name="Pressed">
    										<Storyboard>
    											<ColorAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Stroke).(SolidColorBrush.Color)" To="#FF526C7B" />
    											<DoubleAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="StrokeThickness" To="1.5" />
    											<ObjectAnimationUsingKeyFrames Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Fill)">
    												<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ExpanderArrowPressedFill}" />
    											</ObjectAnimationUsingKeyFrames>
    											<ColorAnimation BeginTime="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="(Path.Stroke).(SolidColorBrush.Color)" To="#FF003366" />
    										</Storyboard>
    									</vsm:VisualState>
    								</vsm:VisualStateGroup>
    								<vsm:VisualStateGroup x:Name="FocusStates">
    									<vsm:VisualState x:Name="Focused">
    										<Storyboard>
    											<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Visibility">
    												<DiscreteObjectKeyFrame KeyTime="0" Value="Visible" />
    											</ObjectAnimationUsingKeyFrames>
    										</Storyboard>
    									</vsm:VisualState>
    									<vsm:VisualState x:Name="Unfocused" />
    								</vsm:VisualStateGroup>
    							</vsm:VisualStateManager.VisualStateGroups>
    							<Border Padding="{TemplateBinding Padding}">
    								<Grid Background="Transparent">
    									<Grid.ColumnDefinitions>
    										<ColumnDefinition Width="19" />
    										<ColumnDefinition Width="*" />
    									</Grid.ColumnDefinitions>
    									<Grid HorizontalAlignment="Left" VerticalAlignment="Top">
    										<Ellipse Fill="{StaticResource ExpanderArrowFill}" Height="19" HorizontalAlignment="Center" x:Name="circle" Stroke="DarkGray" VerticalAlignment="Center" Width="19" />
    										<Path Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" x:Name="arrow" Stroke="#FF0000" StrokeThickness="2" VerticalAlignment="Center" />
    									</Grid>
    									<ContentPresenter Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" Grid.Column="1" HorizontalAlignment="Left" Margin="4,0,0,0" x:Name="header" VerticalAlignment="Center" />
    								</Grid>
    							</Border>
    							<Rectangle IsHitTestVisible="false" x:Name="FocusVisualElement" Stroke="Green" StrokeDashArray="1 2" StrokeThickness="1" Visibility="Collapsed" />
    						</Grid>
    					</ControlTemplate>
    					<ControlTemplate x:Key="ExpanderUpHeaderTemplate" TargetType="ToggleButton">
    						<Grid Background="Transparent">
    							<vsm:VisualStateManager.VisualStateGroups>
    								<vsm:VisualStateGroup x:Name="CheckStates">
    									<vsm:VisualStateGroup.Transitions>
    										<vsm:VisualTransition GeneratedDuration="00:00:00" />
    									</vsm:VisualStateGroup.Transitions>
    									<vsm:VisualState x:Name="Checked">
    										<Storyboard>
    											<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="Data">
    												<DiscreteObjectKeyFrame KeyTime="0" Value="M 1,4.5 L 4.5,1 L 8,4.5" />
    											</ObjectAnimationUsingKeyFrames>
    										</Storyboard>
    									</vsm:VisualState>
    									<vsm:VisualState x:Name="Unchecked" />
    								</vsm:VisualStateGroup>
    								<vsm:VisualStateGroup x:Name="CommonStates">
    									<vsm:VisualStateGroup.Transitions>
    										<vsm:VisualTransition GeneratedDuration="0" />
    										<vsm:VisualTransition GeneratedDuration="00:00:00.1" To="MouseOver" />
    										<vsm:VisualTransition GeneratedDuration="00:00:00.1" To="Pressed" />
    									</vsm:VisualStateGroup.Transitions>
    									<vsm:VisualState x:Name="Normal" />
    									<vsm:VisualState x:Name="MouseOver">
    										<Storyboard>
    											<ColorAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Stroke).(SolidColorBrush.Color)" To="#FF3C7FB1" />
    											<ObjectAnimationUsingKeyFrames Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Fill)">
    												<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ExpanderArrowHoverFill}" />
    											</ObjectAnimationUsingKeyFrames>
    											<ColorAnimation BeginTime="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="(Path.Stroke).(SolidColorBrush.Color)" To="#222" />
    										</Storyboard>
    									</vsm:VisualState>
    									<vsm:VisualState x:Name="Pressed">
    										<Storyboard>
    											<ColorAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Stroke).(SolidColorBrush.Color)" To="#FF526C7B" />
    											<DoubleAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="StrokeThickness" To="1.5" />
    											<ObjectAnimationUsingKeyFrames Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Fill)">
    												<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ExpanderArrowPressedFill}" />
    											</ObjectAnimationUsingKeyFrames>
    											<ColorAnimation BeginTime="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="(Path.Stroke).(SolidColorBrush.Color)" To="#FF003366" />
    										</Storyboard>
    									</vsm:VisualState>
    								</vsm:VisualStateGroup>
    								<vsm:VisualStateGroup x:Name="FocusStates">
    									<vsm:VisualState x:Name="Focused">
    										<Storyboard>
    											<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Visibility">
    												<DiscreteObjectKeyFrame KeyTime="0" Value="Visible" />
    											</ObjectAnimationUsingKeyFrames>
    										</Storyboard>
    									</vsm:VisualState>
    									<vsm:VisualState x:Name="Unfocused" />
    								</vsm:VisualStateGroup>
    							</vsm:VisualStateManager.VisualStateGroups>
    							<Border Padding="{TemplateBinding Padding}">
    								<Grid Background="Transparent">
    									<Grid.ColumnDefinitions>
    										<ColumnDefinition Width="19" />
    										<ColumnDefinition Width="*" />
    									</Grid.ColumnDefinitions>
    									<Grid HorizontalAlignment="Left" VerticalAlignment="Top">
    										<Grid.RenderTransform>
    											<TransformGroup>
    												<TransformGroup.Children>
    													<TransformCollection>
    														<RotateTransform Angle="180" CenterX="9.5" CenterY="9.5" />
    													</TransformCollection>
    												</TransformGroup.Children>
    											</TransformGroup>
    										</Grid.RenderTransform>
    										<Ellipse Fill="{StaticResource ExpanderArrowFill}" Height="19" HorizontalAlignment="Center" x:Name="circle" Stroke="DarkGray" VerticalAlignment="Center" Width="19" />
    										<Path Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" x:Name="arrow" Stroke="#666" StrokeThickness="2" VerticalAlignment="Center" />
    									</Grid>
    									<ContentPresenter Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" Grid.Column="1" HorizontalAlignment="Left" Margin="4,0,0,0" x:Name="header" VerticalAlignment="Center" />
    								</Grid>
    							</Border>
    							<Rectangle IsHitTestVisible="false" x:Name="FocusVisualElement" Stroke="Green" StrokeDashArray="1 2" StrokeThickness="1" Visibility="Collapsed" />
    						</Grid>
    					</ControlTemplate>
    					<ControlTemplate x:Key="ExpanderLeftHeaderTemplate" TargetType="ToggleButton">
    						<Grid Background="Transparent">
    							<vsm:VisualStateManager.VisualStateGroups>
    								<vsm:VisualStateGroup x:Name="CheckStates">
    									<vsm:VisualStateGroup.Transitions>
    										<vsm:VisualTransition GeneratedDuration="00:00:00" />
    									</vsm:VisualStateGroup.Transitions>
    									<vsm:VisualState x:Name="Checked">
    										<Storyboard>
    											<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="Data">
    												<DiscreteObjectKeyFrame KeyTime="0" Value="M 1,4.5 L 4.5,1 L 8,4.5" />
    											</ObjectAnimationUsingKeyFrames>
    										</Storyboard>
    									</vsm:VisualState>
    									<vsm:VisualState x:Name="Unchecked" />
    								</vsm:VisualStateGroup>
    								<vsm:VisualStateGroup x:Name="CommonStates">
    									<vsm:VisualStateGroup.Transitions>
    										<vsm:VisualTransition GeneratedDuration="0" />
    										<vsm:VisualTransition GeneratedDuration="00:00:00.1" To="MouseOver" />
    										<vsm:VisualTransition GeneratedDuration="00:00:00.1" To="Pressed" />
    									</vsm:VisualStateGroup.Transitions>
    									<vsm:VisualState x:Name="Normal" />
    									<vsm:VisualState x:Name="MouseOver">
    										<Storyboard>
    											<ColorAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Stroke).(SolidColorBrush.Color)" To="#FF3C7FB1" />
    											<ObjectAnimationUsingKeyFrames Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Fill)">
    												<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ExpanderArrowHoverFill}" />
    											</ObjectAnimationUsingKeyFrames>
    											<ColorAnimation BeginTime="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="(Path.Stroke).(SolidColorBrush.Color)" To="#222" />
    										</Storyboard>
    									</vsm:VisualState>
    									<vsm:VisualState x:Name="Pressed">
    										<Storyboard>
    											<ColorAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Stroke).(SolidColorBrush.Color)" To="#FF526C7B" />
    											<DoubleAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="StrokeThickness" To="1.5" />
    											<ObjectAnimationUsingKeyFrames Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Fill)">
    												<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ExpanderArrowPressedFill}" />
    											</ObjectAnimationUsingKeyFrames>
    											<ColorAnimation BeginTime="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="(Path.Stroke).(SolidColorBrush.Color)" To="#FF003366" />
    										</Storyboard>
    									</vsm:VisualState>
    								</vsm:VisualStateGroup>
    								<vsm:VisualStateGroup x:Name="FocusStates">
    									<vsm:VisualState x:Name="Focused">
    										<Storyboard>
    											<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Visibility">
    												<DiscreteObjectKeyFrame KeyTime="0" Value="Visible" />
    											</ObjectAnimationUsingKeyFrames>
    										</Storyboard>
    									</vsm:VisualState>
    									<vsm:VisualState x:Name="Unfocused" />
    								</vsm:VisualStateGroup>
    							</vsm:VisualStateManager.VisualStateGroups>
    							<Border Padding="{TemplateBinding Padding}">
    								<Grid Background="Transparent">
    									<Grid.RowDefinitions>
    										<RowDefinition Height="19" />
    										<RowDefinition Height="*" />
    									</Grid.RowDefinitions>
    									<Grid HorizontalAlignment="Center" VerticalAlignment="Top">
    										<Grid.RenderTransform>
    											<TransformGroup>
    												<TransformGroup.Children>
    													<TransformCollection>
    														<RotateTransform Angle="90" CenterX="9.5" CenterY="9.5" />
    													</TransformCollection>
    												</TransformGroup.Children>
    											</TransformGroup>
    										</Grid.RenderTransform>
    										<Ellipse Fill="{StaticResource ExpanderArrowFill}" Height="19" HorizontalAlignment="Center" x:Name="circle" Width="19" Stroke="DarkGray" VerticalAlignment="Center" />
    										<Path Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" x:Name="arrow" Stroke="#666" StrokeThickness="2" VerticalAlignment="Center" />
    									</Grid>
    									<ContentPresenter Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" Grid.Row="1" HorizontalAlignment="Center" Margin="0,4,0,0" x:Name="header" VerticalAlignment="Top" />
    								</Grid>
    							</Border>
    							<Rectangle IsHitTestVisible="false" x:Name="FocusVisualElement" Stroke="Green" StrokeDashArray="1 2" StrokeThickness="1" Visibility="Collapsed" />
    						</Grid>
    					</ControlTemplate>
    					<ControlTemplate x:Key="ExpanderRightHeaderTemplate" TargetType="ToggleButton">
    						<Grid Background="Transparent">
    							<vsm:VisualStateManager.VisualStateGroups>
    								<vsm:VisualStateGroup x:Name="CheckStates">
    									<vsm:VisualStateGroup.Transitions>
    										<vsm:VisualTransition GeneratedDuration="00:00:00" />
    									</vsm:VisualStateGroup.Transitions>
    									<vsm:VisualState x:Name="Checked">
    										<Storyboard>
    											<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="Data">
    												<DiscreteObjectKeyFrame KeyTime="0" Value="M 1,4.5 L 4.5,1 L 8,4.5" />
    											</ObjectAnimationUsingKeyFrames>
    										</Storyboard>
    									</vsm:VisualState>
    									<vsm:VisualState x:Name="Unchecked" />
    								</vsm:VisualStateGroup>
    								<vsm:VisualStateGroup x:Name="CommonStates">
    									<vsm:VisualStateGroup.Transitions>
    										<vsm:VisualTransition GeneratedDuration="0" />
    										<vsm:VisualTransition GeneratedDuration="00:00:00.1" To="MouseOver" />
    										<vsm:VisualTransition GeneratedDuration="00:00:00.1" To="Pressed" />
    									</vsm:VisualStateGroup.Transitions>
    									<vsm:VisualState x:Name="Normal" />
    									<vsm:VisualState x:Name="MouseOver">
    										<Storyboard>
    											<ColorAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Stroke).(SolidColorBrush.Color)" To="#FF3C7FB1" />
    											<ObjectAnimationUsingKeyFrames Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Fill)">
    												<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ExpanderArrowHoverFill}" />
    											</ObjectAnimationUsingKeyFrames>
    											<ColorAnimation BeginTime="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="(Path.Stroke).(SolidColorBrush.Color)" To="#222" />
    										</Storyboard>
    									</vsm:VisualState>
    									<vsm:VisualState x:Name="Pressed">
    										<Storyboard>
    											<ColorAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Stroke).(SolidColorBrush.Color)" To="#FF526C7B" />
    											<DoubleAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="StrokeThickness" To="1.5" />
    											<ObjectAnimationUsingKeyFrames Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Fill)">
    												<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ExpanderArrowPressedFill}" />
    											</ObjectAnimationUsingKeyFrames>
    											<ColorAnimation BeginTime="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="(Path.Stroke).(SolidColorBrush.Color)" To="#FF003366" />
    										</Storyboard>
    									</vsm:VisualState>
    								</vsm:VisualStateGroup>
    								<vsm:VisualStateGroup x:Name="FocusStates">
    									<vsm:VisualState x:Name="Focused">
    										<Storyboard>
    											<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Visibility">
    												<DiscreteObjectKeyFrame KeyTime="0" Value="Visible" />
    											</ObjectAnimationUsingKeyFrames>
    										</Storyboard>
    									</vsm:VisualState>
    									<vsm:VisualState x:Name="Unfocused" />
    								</vsm:VisualStateGroup>
    							</vsm:VisualStateManager.VisualStateGroups>
    							<Border Padding="{TemplateBinding Padding}">
    								<Grid Background="Transparent">
    									<Grid.RowDefinitions>
    										<RowDefinition Height="19" />
    										<RowDefinition Height="*" />
    									</Grid.RowDefinitions>
    									<Grid HorizontalAlignment="Center" VerticalAlignment="Top">
    										<Grid.RenderTransform>
    											<TransformGroup>
    												<TransformGroup.Children>
    													<TransformCollection>
    														<RotateTransform Angle="270" CenterX="9.5" CenterY="9.5" />
    													</TransformCollection>
    												</TransformGroup.Children>
    											</TransformGroup>
    										</Grid.RenderTransform>
    										<Ellipse Fill="{StaticResource ExpanderArrowFill}" Height="19" HorizontalAlignment="Center" x:Name="circle" Stroke="DarkGray" VerticalAlignment="Center" Width="19" />
    										<Path Data="M 1,1.5 L 4.5,5 L 8,1.5" HorizontalAlignment="Center" x:Name="arrow" Stroke="#666" StrokeThickness="2" VerticalAlignment="Center" />
    									</Grid>
    									<ContentPresenter Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" Grid.Row="1" HorizontalAlignment="Center" Margin="0,4,0,0" x:Name="header" VerticalAlignment="Top" />
    								</Grid>
    							</Border>
    							<Rectangle IsHitTestVisible="false" x:Name="FocusVisualElement" Stroke="Green" StrokeDashArray="1 2" StrokeThickness="1" Visibility="Collapsed" />
    						</Grid>
    					</ControlTemplate>
    				</Grid.Resources>
    				<vsm:VisualStateManager.VisualStateGroups>
    					<vsm:VisualStateGroup x:Name="CommonStates">
    						<vsm:VisualStateGroup.Transitions>
    							<vsm:VisualTransition GeneratedDuration="0" />
    						</vsm:VisualStateGroup.Transitions>
    						<vsm:VisualState x:Name="Normal" />
    						<vsm:VisualState x:Name="Disabled">
    							<Storyboard>
    								<DoubleAnimation Duration="0" Storyboard.TargetName="DisabledVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)" To="1" />
    							</Storyboard>
    						</vsm:VisualState>
    					</vsm:VisualStateGroup>
    					<vsm:VisualStateGroup x:Name="FocusStates">
    						<vsm:VisualState x:Name="Focused">
    							<Storyboard>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Visibility">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="Visible" />
    								</ObjectAnimationUsingKeyFrames>
    							</Storyboard>
    						</vsm:VisualState>
    						<vsm:VisualState x:Name="Unfocused" />
    					</vsm:VisualStateGroup>
    					<vsm:VisualStateGroup x:Name="ExpansionStates">
    						<vsm:VisualStateGroup.Transitions>
    							<vsm:VisualTransition GeneratedDuration="0" />
    						</vsm:VisualStateGroup.Transitions>
    						<vsm:VisualState x:Name="Collapsed" />
    						<vsm:VisualState x:Name="Expanded">
    							<Storyboard>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="ExpandSite" Storyboard.TargetProperty="Visibility">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="Visible" />
    								</ObjectAnimationUsingKeyFrames>
    							</Storyboard>
    						</vsm:VisualState>
    					</vsm:VisualStateGroup>
    					<vsm:VisualStateGroup x:Name="ExpandDirectionStates">
    						<vsm:VisualStateGroup.Transitions>
    							<vsm:VisualTransition GeneratedDuration="0" />
    						</vsm:VisualStateGroup.Transitions>
    						<vsm:VisualState x:Name="ExpandDown">
    							<Storyboard>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="rd1" Storyboard.TargetProperty="Height">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="*" />
    								</ObjectAnimationUsingKeyFrames>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="cd0" Storyboard.TargetProperty="Width">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="*" />
    								</ObjectAnimationUsingKeyFrames>
    							</Storyboard>
    						</vsm:VisualState>
    						<vsm:VisualState x:Name="ExpandUp">
    							<Storyboard>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="ExpanderButton" Storyboard.TargetProperty="Template">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ExpanderUpHeaderTemplate}" />
    								</ObjectAnimationUsingKeyFrames>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="ExpanderButton" Storyboard.TargetProperty="(Grid.Row)">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="1" />
    								</ObjectAnimationUsingKeyFrames>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="ExpandSite" Storyboard.TargetProperty="(Grid.Row)">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="0" />
    								</ObjectAnimationUsingKeyFrames>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="rd0" Storyboard.TargetProperty="Height">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="*" />
    								</ObjectAnimationUsingKeyFrames>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="cd0" Storyboard.TargetProperty="Width">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="*" />
    								</ObjectAnimationUsingKeyFrames>
    							</Storyboard>
    						</vsm:VisualState>
    						<vsm:VisualState x:Name="ExpandLeft">
    							<Storyboard>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="ExpanderButton" Storyboard.TargetProperty="Template">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ExpanderLeftHeaderTemplate}" />
    								</ObjectAnimationUsingKeyFrames>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="ExpanderButton" Storyboard.TargetProperty="(Grid.Column)">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="1" />
    								</ObjectAnimationUsingKeyFrames>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="ExpandSite" Storyboard.TargetProperty="(Grid.Row)">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="0" />
    								</ObjectAnimationUsingKeyFrames>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="rd0" Storyboard.TargetProperty="Height">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="*" />
    								</ObjectAnimationUsingKeyFrames>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="cd0" Storyboard.TargetProperty="Width">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="*" />
    								</ObjectAnimationUsingKeyFrames>
    							</Storyboard>
    						</vsm:VisualState>
    						<vsm:VisualState x:Name="ExpandRight">
    							<Storyboard>
    								<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ExpanderButton" Storyboard.TargetProperty="Template">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ExpanderLeftHeaderTemplate}" />
    								</ObjectAnimationUsingKeyFrames>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="ExpandSite" Storyboard.TargetProperty="(Grid.Row)">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="0" />
    								</ObjectAnimationUsingKeyFrames>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="ExpandSite" Storyboard.TargetProperty="(Grid.Column)">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="1" />
    								</ObjectAnimationUsingKeyFrames>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="rd0" Storyboard.TargetProperty="Height">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="*" />
    								</ObjectAnimationUsingKeyFrames>
    								<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="cd1" Storyboard.TargetProperty="Width">
    									<DiscreteObjectKeyFrame KeyTime="0" Value="*" />
    								</ObjectAnimationUsingKeyFrames>
    							</Storyboard>
    						</vsm:VisualState>
    					</vsm:VisualStateGroup>
    				</vsm:VisualStateManager.VisualStateGroups>
    				<Border x:Name="Background" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3">
    					<Grid>
    						<Grid.RowDefinitions>
    							<RowDefinition Height="Auto" x:Name="rd0" />
    							<RowDefinition Height="Auto" x:Name="rd1" />
    						</Grid.RowDefinitions>
    						<Grid.ColumnDefinitions>
    							<ColumnDefinition Width="Auto" x:Name="cd0" />
    							<ColumnDefinition Width="Auto" x:Name="cd1" />
    						</Grid.ColumnDefinitions>
    						<ToggleButton Content="{TemplateBinding Header}" ContentTemplate="{TemplateBinding HeaderTemplate}" FontFamily="{TemplateBinding FontFamily}" FontSize="{TemplateBinding FontSize}" FontStretch="{TemplateBinding FontStretch}" FontStyle="{TemplateBinding FontStyle}" FontWeight="{TemplateBinding FontWeight}" Foreground="{TemplateBinding Foreground}" Grid.Column="0" Grid.Row="0" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsChecked="{TemplateBinding IsExpanded}" Margin="1" MinHeight="0" MinWidth="0" x:Name="ExpanderButton" Padding="{TemplateBinding Padding}" Template="{StaticResource ExpanderDownHeaderTemplate}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" />
    						<ContentControl Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" FontFamily="{TemplateBinding FontFamily}" FontSize="{TemplateBinding FontSize}" FontStretch="{TemplateBinding FontStretch}" FontStyle="{TemplateBinding FontStyle}" FontWeight="{TemplateBinding FontWeight}" Foreground="{TemplateBinding Foreground}" Grid.Column="0" Grid.Row="1" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" x:Name="ExpandSite" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" Visibility="Collapsed" />
    					</Grid>
    				</Border>
    				<Border x:Name="DisabledVisualElement" IsHitTestVisible="false" Opacity="0" Background="#A5FFFFFF" CornerRadius="3" />
    				<Border x:Name="FocusVisualElement" IsHitTestVisible="false" Visibility="Collapsed" BorderThickness="1" CornerRadius="3">
    					<Border.BorderBrush>
    						<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
    							<GradientStop Color="#FFA3AEB9" />
    							<GradientStop Color="#FF8399A9" Offset="0.375" />
    							<GradientStop Color="#FF718597" Offset="0.375" />
    							<GradientStop Color="#FF617584" Offset="1" />
    						</LinearGradientBrush>
    					</Border.BorderBrush>
    				</Border>
    			</Grid>
    		</ControlTemplate>
    	</UserControl.Resources>
        <StackPanel x:Name="LayoutRoot" Background="White">
            <StackPanel.Resources>
                <Style x:Key="DemoButton" TargetType="Button">
                    <Setter Property="Margin" Value="2" />
                    <Setter Property="Foreground" Value="Blue" />
                    <Setter Property="Content" Value="Content From Style" />
                </Style>
                <Style x:Key="DemoExpander" TargetType="controls:Expander">
                    <Setter Property="Header" Value="Header" />
                    <Setter Property="Content" Value="Content" />
                    <Setter Property="Margin" Value="5"/>
                </Style>
            </StackPanel.Resources>
            <controls:Expander Grid.Row="1" Grid.Column="0" ExpandDirection="Down" Style="{StaticResource DemoExpander}" Template="{StaticResource ExpanderControlTemplate1}"/>
        </StackPanel>
    </UserControl>
    
    2009年6月23日 9:47
    版主