aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.FileSystem/Themes/Generic.xaml
blob: 9cc27c7c6860ed0e940249e779adea658bb8f3dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101<
<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
    xmlns:local="clr-namespace:Tango.FileSystem">

    <converters:ByteArrayToFileSizeConverter x:Key="ByteArrayToFileSizeConverter" />
    <converters:DateTimeUtcToLocalDateTime x:Key="DateTimeUtcToLocalDateTime" />

    <Style TargetType="{x:Type local:FileSystemDataGridRow}" BasedOn="{StaticResource {x:Type DataGridRow}}">
        <Setter Property="DoubleClickCommand" Value="{Binding RelativeSource={RelativeSource AncestorType=local:FileExplorerControl},Path=ItemDoubleClickedCommand}"></Setter>
    </Style>

    <Style TargetType="{x:Type local:FileSystemDataGrid}" BasedOn="{StaticResource {x:Type DataGrid}}">

    </Style>

    <Style x:Key="FileSystemCellStyle" TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}">
        <Setter Property="BorderThickness" Value="0"/>
        <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
        <Setter Property="VerticalContentAlignment" Value="Center"></Setter>
    </Style>

    <ContextMenu x:Key="ItemContextMenu">
        <MenuItem Header="Copy"/>
        <MenuItem Header="Paste"/>
        <MenuItem Header="Delete"/>
        <MenuItem Header="Select All"/>
    </ContextMenu>

    <Style TargetType="{x:Type local:FileExplorerControl}">
        <Setter Property="DriveIcon" Value="pack://application:,,,/Tango.FileSystem;component/Images/drive.png"></Setter>
        <Setter Property="FolderIcon" Value="pack://application:,,,/Tango.FileSystem;component/Images/folder.png"></Setter>
        <Setter Property="Mode" Value="Details"></Setter>
        <Setter Property="FocusVisualStyle" Value="{x:Null}"></Setter>
        <Setter Property="Focusable" Value="True"></Setter>
        <Setter Property="AllowDrop" Value="True"></Setter>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:FileExplorerControl}">
                    <Border Background="{TemplateBinding Background}"
                            BorderBrush="{TemplateBinding BorderBrush}"
                            BorderThickness="{TemplateBinding BorderThickness}">
                        <Grid Background="Transparent">
                            <ListBox x:Name="PART_listbox" Background="Transparent" SelectionMode="Extended" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Auto" ItemsSource="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=CurrentItem.Items}" SelectedItem="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=SelectedItem,Mode=TwoWay}">
                                <ListBox.Style>
                                    <Style TargetType="ListBox" BasedOn="{StaticResource {x:Type ListBox}}">
                                        <Setter Property="Visibility" Value="Collapsed"></Setter>
                                        <Style.Triggers>
                                            <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=Mode}" Value="Large">
                                                <Setter Property="Visibility" Value="Visible"></Setter>
                                            </DataTrigger>
                                        </Style.Triggers>
                                    </Style>
                                </ListBox.Style>
                                <ListBox.ItemContainerStyle>
                                    <Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}">
                                        <Setter Property="Padding" Value="5"></Setter>
                                        <Setter Property="Margin" Value="10"></Setter>
                                        <Setter Property="ContextMenu" Value="{StaticResource ItemContextMenu}"></Setter>
                                    </Style>
                                </ListBox.ItemContainerStyle>
                                <ListBox.ItemsPanel>
                                    <ItemsPanelTemplate>
                                        <WrapPanel Orientation="Horizontal" IsItemsHost="True" />
                                    </ItemsPanelTemplate>
                                </ListBox.ItemsPanel>
                                <ListBox.ItemTemplate>
                                    <DataTemplate>
                                        <DockPanel Width="70" Height="115" Background="Transparent">
                                            <DockPanel.InputBindings>
                                                <MouseBinding MouseAction="LeftDoubleClick"
                                                              Command="{Binding RelativeSource={RelativeSource AncestorType=local:FileExplorerControl},Path=ItemDoubleClickedCommand}"
                                                              CommandParameter="{Binding}" />
                                            </DockPanel.InputBindings>
                                            <Image DockPanel.Dock="Top" RenderOptions.BitmapScalingMode="Fant" Stretch="Uniform" HorizontalAlignment="Center" VerticalAlignment="Top">
                                                <Image.Style>
                                                    <Style TargetType="Image">
                                                        <Style.Triggers>
                                                            <DataTrigger Binding="{Binding Type}" Value="Folder">
                                                                <Setter Property="Source" Value="{Binding RelativeSource={RelativeSource AncestorType=local:FileExplorerControl},Path=FolderIcon}"></Setter>
                                                            </DataTrigger>
                                                            <DataTrigger Binding="{Binding Type}" Value="Drive">
                                                                <Setter Property="Source" Value="{Binding RelativeSource={RelativeSource AncestorType=local:FileExplorerControl},Path=DriveIcon}"></Setter>
                                                            </DataTrigger>
                                                            <DataTrigger Binding="{Binding Type}" Value="File">
                                                                <Setter Property="Source" Value="{Binding Icon}"></Setter>
                                                            </DataTrigger>
                                                        </Style.Triggers>
                                                    </Style>
                                                </Image.Style>
                                            </Image>
                                            <TextBlock Text="{Binding Name}" TextWrapping="Wrap" TextTrimming="CharacterEllipsis" HorizontalAlignment="Center" TextAlignment="Center" Margin="0 10 0 0"></TextBlock>
                                        </DockPanel>
                                    </DataTemplate>
                                </ListBox.ItemTemplate>
                            </ListBox>

                            <Grid>
                                <Grid.Style>
                                    <Style TargetType="Grid">
                                        <Setter Property="Visibility" Value="Collapsed"></Setter>
                                        <Style.Triggers>
                                            <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=Mode}" Value="Details">
                                                <Setter Property="Visibility" Value="Visible"></Setter>
                                            </DataTrigger>
                                        </Style.Triggers>
                                    </Style>
                                </Grid.Style>
                                <local:FileSystemDataGrid x:Name="PART_datagrid" ItemsSource="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=CurrentItem.Items}" CellStyle="{StaticResource FileSystemCellStyle}">
                                    <DataGrid.Style>
                                        <Style TargetType="DataGrid" BasedOn="{StaticResource {x:Type DataGrid}}">
                                            <Setter Property="Background" Value="Transparent"></Setter>
                                            <Setter Property="AutoGenerateColumns" Value="False"></Setter>
                                            <Setter Property="CanUserAddRows" Value="False"></Setter>
                                            <Setter Property="CanUserDeleteRows" Value="False"></Setter>
                                            <Setter Property="CanUserReorderColumns" Value="False"></Setter>
                                            <Setter Property="CanUserResizeColumns" Value="True"></Setter>
                                            <Setter Property="CanUserResizeRows" Value="False"></Setter>
                                            <Setter Property="CanUserSortColumns" Value="True"></Setter>
                                            <Setter Property="IsReadOnly" Value="True"></Setter>
                                            <Setter Property="SelectionMode" Value="Extended"></Setter>
                                            <Setter Property="SelectionUnit" Value="FullRow"></Setter>
                                            <Setter Property="RowHeight" Value="22"></Setter>
                                            <Setter Property="HorizontalGridLinesBrush" Value="Transparent"></Setter>
                                            <Setter Property="VerticalGridLinesBrush" Value="Transparent"></Setter>
                                            <Setter Property="HorizontalScrollBarVisibility" Value="Disabled"></Setter>
                                            <Setter Property="CellStyle" Value="{StaticResource FileSystemCellStyle}" />
                                        </Style>
                                    </DataGrid.Style>

                                    <DataGrid.Columns>
                                        <DataGridTemplateColumn Header="Name" Width="300*" SortMemberPath="Name">
                                            <DataGridTemplateColumn.CellTemplate>
                                                <DataTemplate>
                                                    <DockPanel Background="Transparent">
                                                        <Image Width="18" Height="18" RenderOptions.BitmapScalingMode="Fant" Stretch="Uniform" HorizontalAlignment="Center" VerticalAlignment="Center">
                                                            <Image.Style>
                                                                <Style TargetType="Image">
                                                                    <Style.Triggers>
                                                                        <DataTrigger Binding="{Binding Type}" Value="Drive">
                                                                            <Setter Property="Source" Value="{Binding RelativeSource={RelativeSource AncestorType=local:FileExplorerControl},Path=DriveIcon}"></Setter>
                                                                        </DataTrigger>
                                                                        <DataTrigger Binding="{Binding Type}" Value="File">
                                                                            <Setter Property="Source" Value="{Binding SmallIcon}"></Setter>
                                                                        </DataTrigger>
                                                                        <DataTrigger Binding="{Binding Type}" Value="Folder">
                                                                            <Setter Property="Source" Value="{Binding RelativeSource={RelativeSource AncestorType=local:FileExplorerControl},Path=FolderIcon}"></Setter>
                                                                        </DataTrigger>
                                                                    </Style.Triggers>
                                                                </Style>
                                                            </Image.Style>
                                                        </Image>
                                                        <TextBlock Text="{Binding Name}" VerticalAlignment="Center" TextTrimming="CharacterEllipsis" Margin="5 0 0 0"></TextBlock>
                                                    </DockPanel>
                                                </DataTemplate>
                                            </DataGridTemplateColumn.CellTemplate>
                                        </DataGridTemplateColumn>
                                        <DataGridTemplateColumn Header="Date Modified" Width="170*" SortMemberPath="DateModified">
                                            <DataGridTemplateColumn.CellTemplate>
                                                <DataTemplate>
                                                    <DockPanel Background="Transparent">
                                                        <TextBlock Text="{Binding DateModified,Converter={StaticResource DateTimeUtcToLocalDateTime}}" VerticalAlignment="Center"></TextBlock>
                                                    </DockPanel>
                                                </DataTemplate>
                                            </DataGridTemplateColumn.CellTemplate>
                                        </DataGridTemplateColumn>
                                        <DataGridTemplateColumn Header="Type" Width="140*" SortMemberPath="Type">
                                            <DataGridTemplateColumn.CellTemplate>
                                                <DataTemplate>
                                                    <DockPanel Background="Transparent">
                                                        <TextBlock Text="{Binding Description}" VerticalAlignment="Center"></TextBlock>
                                                    </DockPanel>
                                                </DataTemplate>
                                            </DataGridTemplateColumn.CellTemplate>
                                        </DataGridTemplateColumn>
                                        <DataGridTemplateColumn Header="Size" Width="100*" SortMemberPath="Size">
                                            <DataGridTemplateColumn.CellTemplate>
                                                <DataTemplate>
                                                    <DockPanel Background="Transparent">
                                                        <TextBlock Text="{Binding Size,Converter={StaticResource ByteArrayToFileSizeConverter}}" VerticalAlignment="Center">
                                                            <TextBlock.Style>
                                                                <Style TargetType="TextBlock">
                                                                    <Setter Property="Visibility" Value="Hidden"></Setter>
                                                                    <Style.Triggers>
                                                                        <DataTrigger Binding="{Binding Type}" Value="File">
                                                                            <Setter Property="Visibility" Value="Visible"></Setter>
                                                                        </DataTrigger>
                                                                    </Style.Triggers>
                                                                </Style>
                                                            </TextBlock.Style>
                                                        </TextBlock>
                                                    </DockPanel>
                                                </DataTemplate>
                                            </DataGridTemplateColumn.CellTemplate>
                                        </DataGridTemplateColumn>
                                    </DataGrid.Columns>
                                </local:FileSystemDataGrid>
                            </Grid>
                        </Grid>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>