source: extensions/PiwigoLib/PiwigoWpf/MainWindow.xaml @ 9484

Last change on this file since 9484 was 7160, checked in by bayral, 14 years ago

Connection à partir de wpf

File size: 22.0 KB
Line 
1<Window x:Class="Com.Piwigo.Wpf.MainWindow"
2        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4        xmlns:pwg="clr-namespace:Com.Piwigo.Wpf"
5        xmlns:pwgdto="clr-namespace:Com.Piwigo.Wpf.DTO"
6        xmlns:pwgcmd="clr-namespace:Com.Piwigo.Wpf.Command"
7        Title="PiwigoWpf"
8        WindowState="Maximized"
9        MinHeight="600" MinWidth="800">
10    <Window.Resources>
11        <LinearGradientBrush x:Key="WindowGradient" StartPoint="0,0.3" EndPoint="1,0">
12            <LinearGradientBrush.GradientStops>
13                <GradientStop Color="#B2B6CAFF" Offset="0" />
14                <GradientStop Color="#BFC3D5FF" Offset="0.1" />
15                <GradientStop Color="#E0E4F0FF" Offset="0.3" />
16                <GradientStop Color="#E6EAF5FF" Offset="0.5" />
17                <GradientStop Color="#CFD7E2FF" Offset="0.6" />
18                <GradientStop Color="#BFC5D3FF" Offset="0.8" />
19                <GradientStop Color="#C4CBD8FF" Offset="1" />
20            </LinearGradientBrush.GradientStops>
21        </LinearGradientBrush>
22
23        <LinearGradientBrush x:Key="ListBoxGradient" StartPoint="0,0" EndPoint="0,1">
24            <LinearGradientBrush.GradientStops>
25                <GradientStop Color="#90000000" Offset="0" />
26                <GradientStop Color="#40000000" Offset="0.005" />
27                <GradientStop Color="#10000000" Offset="0.04" />
28                <GradientStop Color="#20000000" Offset="0.945" />
29                <GradientStop Color="#60FFFFFF" Offset="1" />
30            </LinearGradientBrush.GradientStops>
31        </LinearGradientBrush>
32
33        <LinearGradientBrush x:Key="ShoppingCartGradient" StartPoint="0,0" EndPoint="0,1">
34            <LinearGradientBrush.GradientStops>
35                <GradientStop Color="#90000000" Offset="0" />
36                <GradientStop Color="#40000000" Offset="0.002" />
37                <GradientStop Color="#10000000" Offset="0.02" />
38                <GradientStop Color="#20000000" Offset="0.98" />
39                <GradientStop Color="#60FFFFFF" Offset="1" />
40            </LinearGradientBrush.GradientStops>
41        </LinearGradientBrush>
42
43        <LinearGradientBrush x:Key="ReflectionGradient" StartPoint="0,1" EndPoint="0,0">
44            <LinearGradientBrush.GradientStops>
45                <GradientStop Color="#50000000" Offset="0" />
46                <GradientStop Color="Transparent" Offset=".5" />
47            </LinearGradientBrush.GradientStops>
48        </LinearGradientBrush>
49
50        <LinearGradientBrush x:Key="ButtonGradient" StartPoint="0,0" EndPoint="0,1">
51            <LinearGradientBrush.GradientStops>
52                <GradientStop Color="#FDB6CADF" Offset="0" />
53                <GradientStop Color="#FCC3C5FF" Offset="0.1" />
54                <GradientStop Color="#FCC4D0EF" Offset="0.3" />
55                <GradientStop Color="#FDB7C2DF" Offset="0.6" />
56                <GradientStop Color="#FE95B3CF" Offset="0.8" />
57                <GradientStop Color="#FE96AACF" Offset="1" />
58            </LinearGradientBrush.GradientStops>
59        </LinearGradientBrush>
60
61        <LinearGradientBrush x:Key="VerticalScrollGradient" StartPoint="0,0" EndPoint="1,0">
62            <LinearGradientBrush.GradientStops>
63                <GradientStop Color="#FDB6CADF" Offset="0" />
64                <GradientStop Color="#FCC3C5FF" Offset="0.1" />
65                <GradientStop Color="#FCC4D0EF" Offset="0.3" />
66                <GradientStop Color="#FDB7C2DF" Offset="0.6" />
67                <GradientStop Color="#FE95B3CF" Offset="0.8" />
68                <GradientStop Color="#FE96AACF" Offset="1" />
69            </LinearGradientBrush.GradientStops>
70        </LinearGradientBrush>
71
72        <LinearGradientBrush x:Key="ComboBoxGradient" StartPoint="0,0" EndPoint="0,1">
73            <LinearGradientBrush.GradientStops>
74                <GradientStop Color="#B2B6CAFF" Offset="0" />
75                <GradientStop Color="#B0B3C5FF" Offset="0.1" />
76                <GradientStop Color="#BEE4E0FF" Offset="0.3" />
77                <GradientStop Color="#B0D7E2FF" Offset="0.6" />
78                <GradientStop Color="#B0C5D3FF" Offset="0.8" />
79                <GradientStop Color="#C4CBD8FF" Offset="1" />
80            </LinearGradientBrush.GradientStops>
81        </LinearGradientBrush>
82
83        <LinearGradientBrush x:Key="GreetingCardGradient" StartPoint="0,0" EndPoint="0,1">
84            <LinearGradientBrush.GradientStops>
85                <GradientStop Color="#EEEEEE" Offset="0" />
86                <GradientStop Color="#FFFFFF" Offset="1" />
87            </LinearGradientBrush.GradientStops>
88        </LinearGradientBrush>
89
90        <LinearGradientBrush x:Key="ButtonUpGradient" StartPoint="0,0" EndPoint="0,1">
91            <LinearGradientBrush.GradientStops>
92                <GradientStop Color="Transparent" Offset="0" />
93                <GradientStop Color="#33000000" Offset="1" />
94            </LinearGradientBrush.GradientStops>
95        </LinearGradientBrush>
96
97        <LinearGradientBrush x:Key="ButtonDownGradient" StartPoint="0,0" EndPoint="0,1">
98            <LinearGradientBrush.GradientStops>
99                <GradientStop Color="#10000000" Offset="0" />
100                <GradientStop Color="#20000000" Offset="1" />
101            </LinearGradientBrush.GradientStops>
102        </LinearGradientBrush>
103
104        <LinearGradientBrush x:Key="ButtonDisabledGradient" StartPoint="0,0" EndPoint="0,1">
105            <LinearGradientBrush.GradientStops>
106                <GradientStop Color="#10302A90" Offset="0" />
107                <GradientStop Color="#10201040" Offset="1" />
108            </LinearGradientBrush.GradientStops>
109        </LinearGradientBrush>
110
111        <!-- STYLES -->
112
113        <Style TargetType="{x:Type pwg:MainWindow}">
114            <Setter Property="Background" Value="{DynamicResource WindowGradient}" />
115        </Style>
116
117        <Style x:Key="TitleText" TargetType="{x:Type TextBlock}" >
118            <Setter Property="FontFamily" Value="Segoe Black" />
119            <Setter Property="FontSize" Value="20px" />
120            <Setter Property="Foreground" Value="MidnightBlue" />
121        </Style>
122
123        <!-- DATA TEMPLATES -->
124
125        <DataTemplate DataType="{x:Type pwgdto:PwgImageWPF}">
126            <Border VerticalAlignment="Center" HorizontalAlignment="Center" Padding="4" Margin="2" Background="Blue"
127                    DataContext="{Binding}">
128                <Image Source="{Binding UrlElement}" ToolTip="{Binding File}" />
129            </Border>
130        </DataTemplate>
131
132        <DataTemplate DataType="{x:Type pwgdto:PwgCategoryWPF}">
133            <Border VerticalAlignment="Center" HorizontalAlignment="Center" Padding="4" Margin="2" Background="Blue"
134                    DataContext="{Binding}">               
135                <TextBox ToolTip="{Binding Name}" />
136            </Border>
137        </DataTemplate>
138
139        <!-- PHOTOLIST TEMPLATE -->
140
141        <Style x:Key="PhotoListStyle" TargetType="{x:Type ListBox}">
142            <Setter Property="Template">
143                <Setter.Value>
144                    <ControlTemplate TargetType="{x:Type ListBox}" >
145                        <Border
146                                                        BorderBrush="Gray"
147                                                        BorderThickness="1"
148                                                        CornerRadius="6"
149                                                        Background="{DynamicResource ListBoxGradient}" >
150                            <ScrollViewer
151                                                                VerticalScrollBarVisibility="Disabled"
152                                                                HorizontalScrollBarVisibility="Auto">
153                                <StackPanel 
154                                                                        IsItemsHost="True"
155                                                                        Orientation="Horizontal"
156                                                                        HorizontalAlignment="Left" />
157                            </ScrollViewer>
158                        </Border>
159                    </ControlTemplate>
160                </Setter.Value>
161            </Setter>
162        </Style>
163
164        <!-- PHOTOLIST STORYBOARDS -->
165
166        <Style x:Key="PhotoListItem" TargetType="{x:Type ListBoxItem}">
167            <Setter Property="MaxHeight" Value="75" />
168            <Setter Property="MinHeight" Value="75" />
169            <Setter Property="Opacity" Value=".75" />
170            <Style.Triggers>
171                <EventTrigger RoutedEvent="Mouse.MouseEnter">
172                    <EventTrigger.Actions>
173                        <BeginStoryboard>
174                            <Storyboard>
175                                <DoubleAnimation
176                                                                        Duration="0:0:0.2"
177                                                                        Storyboard.TargetProperty="MaxHeight"
178                                                                        To="85" />
179                                <DoubleAnimation
180                                                                        Duration="0:0:0.2"
181                                                                        Storyboard.TargetProperty="Opacity"
182                                                                        To="1.0" />
183                            </Storyboard>
184                        </BeginStoryboard>
185                    </EventTrigger.Actions>
186                </EventTrigger>
187
188                <EventTrigger RoutedEvent="Mouse.MouseLeave">
189                    <EventTrigger.Actions>
190                        <BeginStoryboard>
191                            <Storyboard>
192                                <DoubleAnimation
193                                                                        Duration="0:0:1"
194                                                                        Storyboard.TargetProperty="MaxHeight" />
195                                <DoubleAnimation
196                                                                        Duration="0:0:0.2"
197                                                                        Storyboard.TargetProperty="Opacity" />
198                            </Storyboard>
199                        </BeginStoryboard>
200                    </EventTrigger.Actions>
201                </EventTrigger>
202            </Style.Triggers>
203        </Style>
204
205        <!-- BUTTON TEMPLATE -->
206
207        <Style TargetType="{x:Type Button}">
208            <Setter Property="Template">
209                <Setter.Value>
210                    <ControlTemplate TargetType="{x:Type Button}">
211                        <Border x:Name="OuterBorder"
212                                                        CornerRadius="3"
213                                                        Background="{DynamicResource ButtonGradient}">
214                            <Border
215                                                                x:Name="InnerBorder"
216                                                                CornerRadius="3"
217                                                                Background="{DynamicResource ButtonUpGradient}"
218                                                                Padding="{TemplateBinding Padding}">
219                                <ContentPresenter x:Name="ContentSite"
220                                                                HorizontalAlignment="Center"
221                                                                VerticalAlignment="Center" />
222                            </Border>
223                        </Border>
224                        <ControlTemplate.Triggers>
225                            <Trigger Property="IsPressed" Value="true">
226                                <Setter TargetName="InnerBorder" Property="Background" Value="{DynamicResource ButtonDownGradient}" />
227                            </Trigger>
228                            <Trigger Property="IsEnabled" Value="false">
229                                <Setter TargetName="InnerBorder" Property="Background" Value="{DynamicResource ButtonDisabledGradient}"  />
230                                <Setter Property="BorderBrush" Value="Silver"  />
231                                <Setter Property="Foreground" Value="SlateGray"  />
232                            </Trigger>
233                        </ControlTemplate.Triggers>
234                    </ControlTemplate>
235                </Setter.Value>
236            </Setter>
237            <Setter Property="Height" Value="18" />
238            <Setter Property="Foreground" Value="MidnightBlue" />
239        </Style>
240
241        <!-- COMBOBOX STYLE -->
242
243        <Style TargetType="{x:Type ComboBox}" >
244            <Setter Property="Background" Value="{DynamicResource ComboBoxGradient}" />
245            <Setter Property="BorderThickness" Value="0" />
246            <Setter Property="Height" Value="18px" />
247            <Setter Property="Foreground" Value="MidnightBlue" />
248        </Style>
249
250        <!-- PROGRESS BAR STYLE -->
251
252        <Style TargetType="{x:Type ProgressBar}" >
253            <Setter Property="Background" Value="{DynamicResource ComboBoxGradient}" />
254            <Setter Property="BorderThickness" Value="1" />
255            <Setter Property="BorderBrush" Value="Gray" />
256            <Setter Property="Foreground" Value="MidnightBlue" />
257        </Style>
258
259        <!-- SCROLLBAR TEMPLATES -->
260
261        <Style x:Key="Scrollbar_LineButton" TargetType="{x:Type RepeatButton}">
262            <Setter Property="Template">
263                <Setter.Value>
264                    <ControlTemplate TargetType="{x:Type RepeatButton}">
265                        <Border
266                                                        BorderBrush="Transparent"
267                                                        BorderThickness="1"
268                                                        CornerRadius="6"
269                                                        Background="{DynamicResource ButtonGradient}">
270                            <ContentPresenter x:Name="ContentSite" />
271                        </Border>
272                    </ControlTemplate>
273                </Setter.Value>
274            </Setter>
275            <Setter Property="MinHeight" Value="12" />
276            <Setter Property="MinWidth" Value="12" />
277            <Setter Property="Foreground" Value="Gray" />
278            <Setter Property="FontSize" Value="6pt" />
279            <Setter Property="FontWeight" Value="Bold" />
280            <Setter Property="FontFamily" Value="Lucida Sans" />
281            <Setter Property="VerticalAlignment" Value="Center" />
282            <Setter Property="HorizontalAlignment" Value="Center" />
283        </Style>
284
285        <Style x:Key="ScrollBar_TrackRepeater"  TargetType="{x:Type RepeatButton}">
286            <Setter Property="IsTabStop" Value="false" />
287            <Setter Property="Focusable" Value="false" />
288            <Setter Property="Command" Value="ScrollBar.PageUpCommand" />
289            <Setter Property="Template">
290                <Setter.Value>
291                    <ControlTemplate TargetType="{x:Type RepeatButton}">
292                        <Rectangle Fill="Transparent" />
293                    </ControlTemplate>
294                </Setter.Value>
295            </Setter>
296        </Style>
297
298        <Style x:Key="ScrollBar_UpTrack" BasedOn="{StaticResource ScrollBar_TrackRepeater}" TargetType="{x:Type RepeatButton}">
299            <Setter Property="Command" Value="ScrollBar.PageUpCommand" />
300        </Style>
301
302        <Style x:Key="ScrollBar_DownTrack" BasedOn="{StaticResource ScrollBar_TrackRepeater}" TargetType="{x:Type RepeatButton}">
303            <Setter Property="Command" Value="ScrollBar.PageDownCommand" />
304        </Style>
305
306        <Style x:Key="ScrollBar_LeftTrack" BasedOn="{StaticResource ScrollBar_TrackRepeater}" TargetType="{x:Type RepeatButton}">
307            <Setter Property="Command" Value="ScrollBar.PageLeftCommand" />
308        </Style>
309
310        <Style x:Key="ScrollBar_RightTrack" BasedOn="{StaticResource ScrollBar_TrackRepeater}" TargetType="{x:Type RepeatButton}">
311            <Setter Property="Command" Value="ScrollBar.PageRightCommand" />
312        </Style>
313
314        <Style x:Key="ScrollBar_VerticalThumb" TargetType="{x:Type Thumb}">
315            <Setter Property="Template">
316                <Setter.Value>
317                    <ControlTemplate TargetType="{x:Type Thumb}">
318                        <Border CornerRadius="6"
319                                                        BorderBrush="Transparent"     
320                                                        BorderThickness="1"
321                                                        Background="{DynamicResource VerticalScrollGradient}" />
322                    </ControlTemplate>
323                </Setter.Value>
324            </Setter>
325            <Setter Property="MinHeight" Value="10" />
326            <Setter Property="MinWidth" Value="10" />
327        </Style>
328
329        <Style x:Key="ScrollBar_HorizontalThumb" TargetType="{x:Type Thumb}">
330            <Setter Property="Template">
331                <Setter.Value>
332                    <ControlTemplate TargetType="{x:Type Thumb}">
333                        <Border CornerRadius="6"
334                                                        BorderBrush="Transparent"     
335                                                        BorderThickness="1"
336                                                        Background="{DynamicResource ButtonGradient}" />
337                    </ControlTemplate>
338                </Setter.Value>
339            </Setter>
340            <Setter Property="MinHeight" Value="10" />
341            <Setter Property="MinWidth" Value="10" />
342        </Style>
343
344        <Style TargetType="{x:Type ScrollBar}">
345            <Setter Property="Background" Value="Transparent" />
346            <Setter Property="MinWidth" Value="10" />
347            <Setter Property="Template">
348                <Setter.Value>
349                    <ControlTemplate TargetType="{x:Type ScrollBar}">
350                        <Grid>
351                            <Grid.ColumnDefinitions>
352                                <ColumnDefinition Width="10"/>
353                            </Grid.ColumnDefinitions>
354                            <Grid.RowDefinitions>
355                                <RowDefinition Height="10" />
356                                <RowDefinition Height="*"/>
357                                <RowDefinition Height="10" />
358                            </Grid.RowDefinitions>
359                            <Border Grid.Row="1" BorderThickness="0" Background="Transparent" CornerRadius="4"/>
360                            <RepeatButton Grid.Row="0" Style="{DynamicResource Scrollbar_LineButton}" Command="ScrollBar.LineUpCommand" Content=" ^" />
361                            <Track Grid.Row="1" Name="PART_Track"  IsDirectionReversed="True">
362                                <Track.IncreaseRepeatButton>
363                                    <RepeatButton Style="{DynamicResource ScrollBar_DownTrack}"/>
364                                </Track.IncreaseRepeatButton>
365                                <Track.DecreaseRepeatButton>
366                                    <RepeatButton Style="{DynamicResource ScrollBar_UpTrack}"/>
367                                </Track.DecreaseRepeatButton>
368                                <Track.Thumb>
369                                    <Thumb Style="{DynamicResource ScrollBar_VerticalThumb}"/>
370                                </Track.Thumb>
371                            </Track>
372                            <RepeatButton Grid.Row="2" Style="{DynamicResource Scrollbar_LineButton}" Command="ScrollBar.LineDownCommand" Content=" v" />
373                        </Grid>
374                    </ControlTemplate>
375                </Setter.Value>
376            </Setter>
377            <Style.Triggers>
378                <Trigger Property="Orientation" Value="Horizontal" >
379                    <Setter Property="Background" Value="Transparent" />
380                    <Setter Property="MinHeight" Value="10" />
381                    <Setter Property="Template">
382                        <Setter.Value>
383                            <ControlTemplate TargetType="{x:Type ScrollBar}">
384                                <Grid>
385                                    <Grid.RowDefinitions>
386                                        <RowDefinition Height="12"/>
387                                    </Grid.RowDefinitions>
388                                    <Grid.ColumnDefinitions>
389                                        <ColumnDefinition Width="12" />
390                                        <ColumnDefinition Width="*"/>
391                                        <ColumnDefinition Width="12" />
392                                    </Grid.ColumnDefinitions>
393                                    <Border Grid.Column="1" BorderThickness="0" Background="Transparent" CornerRadius="4"/>
394                                    <RepeatButton Grid.Column="0" Style="{DynamicResource Scrollbar_LineButton}" Command="ScrollBar.LineLeftCommand" Content=" &lt;" />
395                                    <Track Grid.Column="1" Name="PART_Track">
396                                        <Track.IncreaseRepeatButton>
397                                            <RepeatButton Style="{DynamicResource ScrollBar_RightTrack}"/>
398                                        </Track.IncreaseRepeatButton>
399                                        <Track.DecreaseRepeatButton>
400                                            <RepeatButton Style="{DynamicResource ScrollBar_LeftTrack}"/>
401                                        </Track.DecreaseRepeatButton>
402                                        <Track.Thumb>
403                                            <Thumb Style="{DynamicResource ScrollBar_HorizontalThumb}"/>
404                                        </Track.Thumb>
405                                    </Track>
406                                    <RepeatButton Grid.Column="2" Style="{DynamicResource Scrollbar_LineButton}" Command="ScrollBar.LineRightCommand" Content=" &gt;" />
407
408                                </Grid>
409                            </ControlTemplate>
410                        </Setter.Value>
411                    </Setter>
412                </Trigger>
413            </Style.Triggers>
414        </Style>
415    </Window.Resources>
416    <DockPanel Name="mainDockPanel"  Margin="5">
417        <StackPanel Name="headerStackPanel" DockPanel.Dock="Top" Orientation="Vertical">
418            <Image Name="ImgPiwigoLogo" MinHeight="50" MinWidth="50"
419                   Source="pack://application:,,,/Pictures/PiwigoLogo.png"
420                   ToolTip="www.piwigo.org" Stretch="None" />
421            <StackPanel Name="connectStackPanel" Orientation="Horizontal" VerticalAlignment="Center"  Margin="5"
422                        DataContext="{Binding Source={StaticResource Session}}">
423                <Label Content="User" Name="LblUsr" />
424                <TextBox Height="23" Name="BbUsr" Width="120" Text="{Binding Path=UserName, Mode=TwoWay}" />
425                <Label Content="Password" Name="LblPwd" />
426                <TextBox Height="23" Name="TbPwd" Width="120" Text="{Binding Path=Password, Mode=TwoWay}"/>
427                <Label Content="Url" Name="LblUrl" />
428                <TextBox Height="23" Name="TbUrl" Width="300" Text="{Binding Path=ServeurName, Mode=TwoWay}"/>
429                <CheckBox  VerticalAlignment="Center" IsChecked="{Binding Path=SaveSetting, Mode=TwoWay}">Save settings</CheckBox>
430                <Button Margin="2" Command="{x:Static pwgcmd:PwgCmdProvider.PwgCmdConnect}">Go</Button>
431            </StackPanel>
432           <ProgressBar IsIndeterminate="True" />         
433        </StackPanel>
434
435        <ListView Name="listViewCategory" Style="PhotoListStyle" DockPanel.Dock="Left" MinWidth="100" ItemsSource="{Binding Source={StaticResource Categories}}" />
436        <ListView Name="listViewImage" Style="PhotoListStyle" DockPanel.Dock="Right"  MinWidth="500" ItemsSource="{Binding Source={StaticResource Images}}" />
437    </DockPanel>
438   
439</Window>
Note: See TracBrowser for help on using the repository browser.