aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Hive/Themes/Generic.xaml
blob: ce4bb52cd71a7f1f8a7952ae99f91b8de51f5510 (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
<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:Tango.Hive"
    xmlns:converters="clr-namespace:Tango.Hive.Converters">

    <converters:HexClipConverter x:Key="ClipConverter"/>

    <!--HexItem-->
    <Style TargetType="{x:Type local:HexItem}">        
        <Setter Property="Background" Value="CornflowerBlue"/>
        <Setter Property="BorderBrush" Value="Black"/>
        <Setter Property="BorderThickness" Value="4"/>
        <Setter Property="HorizontalContentAlignment" Value="Center"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="local:HexItem">
                    <Grid Name="hexBorder" Background="{TemplateBinding BorderBrush}">
                        <Grid.Clip>
                            <MultiBinding Converter="{StaticResource ClipConverter}">
                                <Binding Path="ActualWidth" ElementName="hexBorder"/>
                                <Binding Path="ActualHeight" ElementName="hexBorder"/>
                                <Binding Path="Orientation" RelativeSource="{RelativeSource TemplatedParent}"/>
                            </MultiBinding>
                        </Grid.Clip>

                        <Grid Name="hexContent"                              
                              Background="{TemplateBinding Background}"
                              Margin="{TemplateBinding BorderThickness}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
                            <Grid.Clip>
                                <MultiBinding Converter="{StaticResource ClipConverter}">
                                    <Binding Path="ActualWidth" ElementName="hexContent"/>
                                    <Binding Path="ActualHeight" ElementName="hexContent"/>
                                    <Binding Path="Orientation" RelativeSource="{RelativeSource TemplatedParent}"/>
                                </MultiBinding>
                            </Grid.Clip>

                            <ContentPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                              HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                              ClipToBounds="True"

                                              Margin="{TemplateBinding Padding}"
                                              Content="{TemplateBinding Content}"
                                              ContentTemplate="{TemplateBinding ContentTemplate}"/>
                        </Grid>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsSelected" Value="True">
                            <!--<Setter Property="BorderBrush" Value="Gold"/>-->
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <!--HexList-->
    <Style TargetType="{x:Type local:HexList}">
        <Setter Property="ItemsPanel">
            <Setter.Value>
                <ItemsPanelTemplate>
                    <local:HexGrid ColumnCount="{Binding Path=ColumnCount, RelativeSource={RelativeSource AncestorType=ListBox}}"
                                   RowCount="{Binding Path=RowCount, RelativeSource={RelativeSource AncestorType=ListBox}}"
                                   Background="{Binding Path=Background, RelativeSource={RelativeSource AncestorType=ListBox}}"/>
                </ItemsPanelTemplate>
            </Setter.Value>
        </Setter>                
        
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:HexList}">
                    <Grid>
                        <Border BorderBrush="{TemplateBinding BorderBrush}"
                                BorderThickness="{TemplateBinding BorderThickness}" 
                                Background="{TemplateBinding Background}" 
                                Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True">
                            <ScrollViewer Focusable="False" 
                                          HorizontalScrollBarVisibility="Auto"
                                          VerticalScrollBarVisibility="Auto"
                                          Padding="{TemplateBinding Padding}">
                                <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                            </ScrollViewer>
                        </Border>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>            
        </Setter>
    </Style>
</ResourceDictionary>