author | cavaliet |
Wed, 07 Oct 2009 17:16:46 +0200 | |
changeset 135 | 84b3bf5ee3d2 |
parent 134 | f5108a598aa7 |
child 146 | dd8ed4d3beb6 |
permissions | -rw-r--r-- |
3 | 1 |
<UserControl |
2 |
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
|
3 |
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|
4 |
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
|
5 |
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" |
|
6 |
mc:Ignorable="d" |
|
92 | 7 |
xmlns:Custom="http://schemas.microsoft.com/surface/2008" xmlns:Microsoft_Surface_Presentation_Generic="clr-namespace:Microsoft.Surface.Presentation.Generic;assembly=Microsoft.Surface.Presentation.Generic" |
3 | 8 |
x:Class="FingersDance.Control.Player.UserControlPlayer" |
134
f5108a598aa7
drag and drop places the video at the good timecode.
cavaliet
parents:
118
diff
changeset
|
9 |
x:Name="UserControl" AllowDrop="True" Custom:SurfaceDragDrop.DragOver="Play_Pause_area_DragOver" Custom:SurfaceDragDrop.DragEnter="Play_Pause_area_DragEnter" Custom:SurfaceDragDrop.DragLeave="Play_Pause_area_DragLeave" Custom:SurfaceDragDrop.Drop="Play_Pause_area_Drop" |
92 | 10 |
Width="560" Height="400"> |
4 | 11 |
<UserControl.Resources> |
12 |
<Storyboard x:Key="OnClick1"/> |
|
92 | 13 |
<Style x:Key="FingersDance.Control.PlayerButton" TargetType="{x:Type Custom:SurfaceButton}"> |
14 |
<Style.BasedOn> |
|
15 |
<Style TargetType="{x:Type ButtonBase}"> |
|
16 |
<Setter Property="SnapsToDevicePixels" Value="True"/> |
|
17 |
<Setter Property="FocusVisualStyle"> |
|
18 |
<Setter.Value> |
|
19 |
<Style> |
|
20 |
<Setter Property="Control.Template"> |
|
21 |
<Setter.Value> |
|
22 |
<ControlTemplate/> |
|
23 |
</Setter.Value> |
|
24 |
</Setter> |
|
25 |
</Style> |
|
26 |
</Setter.Value> |
|
27 |
</Setter> |
|
28 |
<Setter Property="FontFamily" Value="Segoe UI"/> |
|
29 |
<Setter Property="FontSize" Value="10"/> |
|
30 |
<Setter Property="Foreground" Value="Black"/> |
|
31 |
<Setter Property="Background" Value="#33A4B4BD"/> |
|
32 |
<Setter Property="BorderBrush"> |
|
33 |
<Setter.Value> |
|
34 |
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0"> |
|
35 |
<GradientStop Color="#7FFFFFFF" Offset="0"/> |
|
36 |
<GradientStop Color="#0CFFFFFF" Offset="1"/> |
|
37 |
</LinearGradientBrush> |
|
38 |
</Setter.Value> |
|
39 |
</Setter> |
|
40 |
<Setter Property="BorderThickness" Value="1"/> |
|
41 |
<Setter Property="HorizontalContentAlignment" Value="Center"/> |
|
42 |
<Setter Property="VerticalContentAlignment" Value="Center"/> |
|
43 |
<Setter Property="Padding" Value="15,6"/> |
|
44 |
<Setter Property="IsTabStop" Value="False"/> |
|
45 |
<Setter Property="Focusable" Value="False"/> |
|
46 |
<Setter Property="MinWidth" Value="30"/> |
|
47 |
<Setter Property="MinHeight" Value="30"/> |
|
48 |
<Setter Property="Template"> |
|
49 |
<Setter.Value> |
|
50 |
<ControlTemplate TargetType="{x:Type ButtonBase}"> |
|
51 |
<ControlTemplate.Resources> |
|
52 |
<Storyboard x:Key="Press"> |
|
53 |
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Glow" Storyboard.TargetProperty="(UIElement.Opacity)"> |
|
54 |
<SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/> |
|
55 |
</DoubleAnimationUsingKeyFrames> |
|
56 |
<ThicknessAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Glow" Storyboard.TargetProperty="(FrameworkElement.Margin)"> |
|
57 |
<SplineThicknessKeyFrame KeyTime="00:00:00.1000000" Value="-3"/> |
|
58 |
</ThicknessAnimationUsingKeyFrames> |
|
59 |
</Storyboard> |
|
60 |
<Storyboard x:Key="Release"> |
|
61 |
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Glow" Storyboard.TargetProperty="(UIElement.Opacity)"> |
|
62 |
<SplineDoubleKeyFrame KeyTime="00:00:00" Value="1"/> |
|
63 |
<SplineDoubleKeyFrame KeySpline="0.5,0.5,0.5,1" KeyTime="00:00:00.5000000" Value="0"/> |
|
64 |
</DoubleAnimationUsingKeyFrames> |
|
65 |
<ThicknessAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Glow" Storyboard.TargetProperty="(FrameworkElement.Margin)"> |
|
66 |
<SplineThicknessKeyFrame KeyTime="00:00:00" Value="-3"/> |
|
67 |
<SplineThicknessKeyFrame KeySpline="0.5,0.5,0.5,1" KeyTime="00:00:00.5000000" Value="1"/> |
|
68 |
</ThicknessAnimationUsingKeyFrames> |
|
69 |
</Storyboard> |
|
70 |
</ControlTemplate.Resources> |
|
71 |
<Grid x:Name="Grid" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"> |
|
72 |
<Border x:Name="Shadow" Margin="1,1,1,0" BorderBrush="{x:Null}" BorderThickness="0,0,0,1" CornerRadius="6" Padding="1"/> |
|
73 |
<Rectangle x:Name="Base" Fill="{TemplateBinding Background}" StrokeThickness="1" RadiusX="5" RadiusY="5" Margin="1" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Stroke="{x:Null}"/> |
|
74 |
<Rectangle x:Name="RenderOverlay" Stroke="{TemplateBinding BorderBrush}" StrokeThickness="1" RadiusX="4" RadiusY="4" Margin="2" Opacity="1" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Fill="{x:Null}"/> |
|
75 |
<Microsoft_Surface_Presentation_Generic:SurfaceShadowChrome x:Name="Glow" Margin="1" Opacity="0" Color="White" CornerRadius="4"/> |
|
76 |
<ContentPresenter x:Name="Content" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RenderTransformOrigin="0.5,0.5" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}"> |
|
77 |
<ContentPresenter.RenderTransform> |
|
78 |
<TranslateTransform X="0" Y="-1"/> |
|
79 |
</ContentPresenter.RenderTransform> |
|
80 |
</ContentPresenter> |
|
81 |
</Grid> |
|
82 |
<ControlTemplate.Triggers> |
|
83 |
<Trigger Property="IsPressed" Value="True"> |
|
84 |
<Trigger.EnterActions> |
|
85 |
<BeginStoryboard> |
|
86 |
<Storyboard> |
|
87 |
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Glow" Storyboard.TargetProperty="(UIElement.Opacity)"> |
|
88 |
<SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/> |
|
89 |
</DoubleAnimationUsingKeyFrames> |
|
90 |
<ThicknessAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Glow" Storyboard.TargetProperty="(FrameworkElement.Margin)"> |
|
91 |
<SplineThicknessKeyFrame KeyTime="00:00:00.1000000" Value="-3"/> |
|
92 |
</ThicknessAnimationUsingKeyFrames> |
|
93 |
</Storyboard> |
|
94 |
</BeginStoryboard> |
|
95 |
</Trigger.EnterActions> |
|
96 |
<Trigger.ExitActions> |
|
97 |
<BeginStoryboard> |
|
98 |
<Storyboard> |
|
99 |
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Glow" Storyboard.TargetProperty="(UIElement.Opacity)"> |
|
100 |
<SplineDoubleKeyFrame KeyTime="00:00:00" Value="1"/> |
|
101 |
<SplineDoubleKeyFrame KeySpline="0.5,0.5,0.5,1" KeyTime="00:00:00.5000000" Value="0"/> |
|
102 |
</DoubleAnimationUsingKeyFrames> |
|
103 |
<ThicknessAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Glow" Storyboard.TargetProperty="(FrameworkElement.Margin)"> |
|
104 |
<SplineThicknessKeyFrame KeyTime="00:00:00" Value="-3"/> |
|
105 |
<SplineThicknessKeyFrame KeySpline="0.5,0.5,0.5,1" KeyTime="00:00:00.5000000" Value="1"/> |
|
106 |
</ThicknessAnimationUsingKeyFrames> |
|
107 |
</Storyboard> |
|
108 |
</BeginStoryboard> |
|
109 |
</Trigger.ExitActions> |
|
110 |
</Trigger> |
|
111 |
<Trigger Property="IsEnabled" Value="True"/> |
|
112 |
<Trigger Property="IsEnabled" Value="False"> |
|
113 |
<Setter Property="Fill" TargetName="RenderOverlay" Value="#0CFFFFFF"/> |
|
114 |
<Setter Property="Stroke" TargetName="RenderOverlay" Value="#33FFFFFF"/> |
|
115 |
<Setter Property="Stroke" TargetName="Base" Value="#33000000"/> |
|
116 |
<Setter Property="BorderBrush" TargetName="Shadow" Value="#00000000"/> |
|
117 |
<Setter Property="Foreground" Value="#A5333333"/> |
|
118 |
<Setter Property="Background" Value="Transparent"/> |
|
119 |
</Trigger> |
|
120 |
</ControlTemplate.Triggers> |
|
121 |
</ControlTemplate> |
|
122 |
</Setter.Value> |
|
123 |
</Setter> |
|
124 |
</Style> |
|
125 |
</Style.BasedOn> |
|
126 |
</Style> |
|
4 | 127 |
</UserControl.Resources> |
135
84b3bf5ee3d2
First step of drag and drop annotation from a timeline to an other player
cavaliet
parents:
134
diff
changeset
|
128 |
<Grid x:Name="LayoutRoot" Width="{Binding ActualWidth, ElementName=UserControl, Mode=Default}" Height="{Binding ActualHeight, ElementName=UserControl, Mode=Default}" Background="{x:Null}"> |
134
f5108a598aa7
drag and drop places the video at the good timecode.
cavaliet
parents:
118
diff
changeset
|
129 |
<Viewbox Margin="0,0,0,0" Width="{Binding ActualWidth, ElementName=UserControl, Mode=Default}" Height="{Binding ActualHeight, ElementName=UserControl, Mode=Default}" Stretch="Uniform" AllowDrop="True"> |
135
84b3bf5ee3d2
First step of drag and drop annotation from a timeline to an other player
cavaliet
parents:
134
diff
changeset
|
130 |
<Grid Width="560" Height="400" HorizontalAlignment="Left" x:Name="GridPlayer"> |
134
f5108a598aa7
drag and drop places the video at the good timecode.
cavaliet
parents:
118
diff
changeset
|
131 |
<MediaElement x:Name="MediaElementVideo" MediaOpened="MediaElementVideo_MediaOpened" Stretch="Fill" ScrubbingEnabled="False" StretchDirection="Both" Margin="0,0,50,0" /> |
f5108a598aa7
drag and drop places the video at the good timecode.
cavaliet
parents:
118
diff
changeset
|
132 |
<Custom:SurfaceButton x:Name="Rewind_area" Content="" ContactDown="ButtonRewind_ContactDown" |
f5108a598aa7
drag and drop places the video at the good timecode.
cavaliet
parents:
118
diff
changeset
|
133 |
Click="ButtonRewind_Click" Foreground="{x:Null}" Background="#FFFFFFFF" BorderBrush="{x:Null}" |
135
84b3bf5ee3d2
First step of drag and drop annotation from a timeline to an other player
cavaliet
parents:
134
diff
changeset
|
134 |
Opacity="0" Width="72" HorizontalAlignment="Left" Style="{DynamicResource FingersDance.Control.PlayerButton}" Margin="0,0,0,0"/> |
134
f5108a598aa7
drag and drop places the video at the good timecode.
cavaliet
parents:
118
diff
changeset
|
135 |
<Custom:SurfaceButton x:Name="Fast_Forward_area" Content="" ContactDown="ButtonFastForward_ContactDown" Click="ButtonFastForward_Click" |
f5108a598aa7
drag and drop places the video at the good timecode.
cavaliet
parents:
118
diff
changeset
|
136 |
Foreground="{x:Null}" Background="#FFFFFFFF" BorderBrush="{x:Null}" Opacity="0" Width="72" HorizontalAlignment="Right" |
135
84b3bf5ee3d2
First step of drag and drop annotation from a timeline to an other player
cavaliet
parents:
134
diff
changeset
|
137 |
Style="{DynamicResource FingersDance.Control.PlayerButton}" Margin="0,0,54,0"/> |
134
f5108a598aa7
drag and drop places the video at the good timecode.
cavaliet
parents:
118
diff
changeset
|
138 |
<Custom:SurfaceButton x:Name="Play_Pause_area" ContactDown="ButtonPlayPause_ContactDown" Click="ButtonPlayPause_Click" Foreground="{x:Null}" |
135
84b3bf5ee3d2
First step of drag and drop annotation from a timeline to an other player
cavaliet
parents:
134
diff
changeset
|
139 |
Background="#FFFFFFFF" BorderBrush="{x:Null}" Margin="72,0,126,0" Style="{DynamicResource FingersDance.Control.PlayerButton}" Opacity="0"/> |
134
f5108a598aa7
drag and drop places the video at the good timecode.
cavaliet
parents:
118
diff
changeset
|
140 |
<StackPanel Opacity="1" HorizontalAlignment="Right" Width="50" Background="#FF0046F6" x:Name="StackPanelAnnotation" VerticalAlignment="Bottom" Height="Auto"> |
f5108a598aa7
drag and drop places the video at the good timecode.
cavaliet
parents:
118
diff
changeset
|
141 |
<Rectangle Width="50" Height="50" Fill="#FFFFFFFF" Stroke="#FF000000"/> |
f5108a598aa7
drag and drop places the video at the good timecode.
cavaliet
parents:
118
diff
changeset
|
142 |
<Rectangle Width="50" Height="50" Fill="#FFFFFFFF" Stroke="#FF000000"/> |
f5108a598aa7
drag and drop places the video at the good timecode.
cavaliet
parents:
118
diff
changeset
|
143 |
<Rectangle Width="50" Height="50" Fill="#FFFFFFFF" Stroke="#FF000000"/> |
f5108a598aa7
drag and drop places the video at the good timecode.
cavaliet
parents:
118
diff
changeset
|
144 |
<Rectangle Width="50" Height="50" Fill="#FFFFFFFF" Stroke="#FF000000" VerticalAlignment="Bottom"/> |
f5108a598aa7
drag and drop places the video at the good timecode.
cavaliet
parents:
118
diff
changeset
|
145 |
</StackPanel> |
f5108a598aa7
drag and drop places the video at the good timecode.
cavaliet
parents:
118
diff
changeset
|
146 |
</Grid> |
f5108a598aa7
drag and drop places the video at the good timecode.
cavaliet
parents:
118
diff
changeset
|
147 |
</Viewbox> |
f5108a598aa7
drag and drop places the video at the good timecode.
cavaliet
parents:
118
diff
changeset
|
148 |
</Grid> |
34 | 149 |
</UserControl> |