aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX.WPF.Demo/MainWindow.xaml
blob: 89cdde87c830b0fd6d23cbfd597b12c2f4da0454 (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
102
103
104
105
106
107
108
109
110
111
112
<Window x:Class="RealTimeGraphX.WPF.Demo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:RealTimeGraphX.WPF.Demo"
        xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
        xmlns:realTimeGraphX="clr-namespace:RealTimeGraphX.WPF;assembly=RealTimeGraphX.WPF"
        mc:Ignorable="d"
        Title="RealtimeGraphX WPF Demo" Height="557" Width="1168.5" d:DataContext="{d:DesignData Type=local:MainWindowVM, IsDesignTimeCreatable=False}">

    <Window.Resources>
        <collections:ArrayList x:Key="colors">
            <Color>DodgerBlue</Color>
            <Color>Red</Color>
            <Color>Green</Color>
        </collections:ArrayList>

        <collections:ArrayList x:Key="brushes">
            <SolidColorBrush Color="Transparent"></SolidColorBrush>
            <SolidColorBrush Color="#861E90FF"></SolidColorBrush>
            <LinearGradientBrush>
                <GradientStop Offset="0" Color="#86FF0000" />
                <GradientStop Offset="1" Color="#80FFFF00" />
            </LinearGradientBrush>
        </collections:ArrayList>
    </Window.Resources>

    <Grid>
        <TabControl Background="Transparent" Margin="20">
            <TabItem Header="Single Series">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="1*"/>
                        <ColumnDefinition Width="200"/>
                    </Grid.ColumnDefinitions>
                    <local:WpfGraphControl Margin="10" Controller="{Binding Controller}" />

                    <Border Grid.Column="1" Margin="10" BorderBrush="Gray" BorderThickness="1" CornerRadius="5" Padding="5">
                        <StackPanel>
                            <TextBlock FontSize="10">Duration</TextBlock>
                            <TextBox Margin="0 5 0 0" Text="{Binding Controller.Range.MaximumX,Mode=TwoWay}"></TextBox>

                            <TextBlock FontSize="10" Margin="0 10 0 0">Refresh Rate</TextBlock>
                            <TextBox Margin="0 5 0 0" Text="{Binding Controller.RefreshRate,Mode=TwoWay}"></TextBox>

                            <TextBlock FontSize="10" Margin="0 10 0 0">Minimum Y</TextBlock>
                            <TextBox Margin="0 5 0 0" Text="{Binding Controller.Range.MinimumY,Mode=TwoWay}"></TextBox>

                            <TextBlock FontSize="10" Margin="0 10 0 0">Maximum Y</TextBlock>
                            <TextBox Margin="0 5 0 0" Text="{Binding Controller.Range.MaximumY,Mode=TwoWay}"></TextBox>

                            <CheckBox Margin="0 5 0 0" IsChecked="{Binding Controller.Range.AutoY,Mode=TwoWay}">Auto Range (Y)</CheckBox>

                            <TextBlock FontSize="10" Margin="0 20 0 0">Stroke</TextBlock>
                            <ComboBox Margin="0 5 0 0" ItemsSource="{StaticResource colors}" SelectedItem="{Binding Controller.DataSeriesCollection[0].Stroke}"/>

                            <TextBlock FontSize="10" Margin="0 10 0 0">Thickness</TextBlock>
                            <Slider Margin="0 5 0 0" Minimum="1" Maximum="5" Value="{Binding Controller.DataSeriesCollection[0].StrokeThickness}" IsSnapToTickEnabled="True" TickFrequency="1" />

                            <TextBlock FontSize="10" Margin="0 10 0 0">Fill</TextBlock>
                            <ComboBox Margin="0 5 0 0" ItemsSource="{StaticResource brushes}" SelectedItem="{Binding Controller.DataSeriesCollection[0].Fill}"/>

                            <CheckBox Margin="0 10 0 0" IsChecked="{Binding Controller.IsPaused,Mode=TwoWay}">Paused</CheckBox>

                            <Button Margin="0 10 0 0" Padding="5" Command="{Binding Controller.ClearCommand}">Clear</Button>
                        </StackPanel>
                    </Border>
                </Grid>
            </TabItem>
            <TabItem Header="Multi Series">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="1*"/>
                        <ColumnDefinition Width="200"/>
                    </Grid.ColumnDefinitions>
                    <local:WpfGraphControl Margin="10" Controller="{Binding MultiController}" />

                    <Border Grid.Column="1" Margin="10" BorderBrush="Gray" BorderThickness="1" CornerRadius="5" Padding="5">
                        <StackPanel>
                            <TextBlock FontSize="10">Duration</TextBlock>
                            <TextBox Margin="0 5 0 0" Text="{Binding MultiController.Range.MaximumX,Mode=TwoWay}"></TextBox>

                            <TextBlock FontSize="10" Margin="0 10 0 0">Refresh Rate</TextBlock>
                            <TextBox Margin="0 5 0 0" Text="{Binding MultiController.RefreshRate,Mode=TwoWay}"></TextBox>

                            <TextBlock FontSize="10" Margin="0 10 0 0">Minimum Y</TextBlock>
                            <TextBox Margin="0 5 0 0" Text="{Binding MultiController.Range.MinimumY,Mode=TwoWay}"></TextBox>

                            <TextBlock FontSize="10" Margin="0 10 0 0">Maximum Y</TextBlock>
                            <TextBox Margin="0 5 0 0" Text="{Binding MultiController.Range.MaximumY,Mode=TwoWay}"></TextBox>

                            <CheckBox Margin="0 5 0 0" IsChecked="{Binding MultiController.Range.AutoY,Mode=TwoWay}">Auto Range (Y)</CheckBox>

                            <ListBox ItemsSource="{Binding MultiController.DataSeriesCollection}" Height="120" Margin="0 20">
                                <ListBox.ItemTemplate>
                                    <DataTemplate>
                                        <StackPanel>
                                            <CheckBox Content="{Binding Name}" IsChecked="{Binding IsVisible}" />
                                        </StackPanel>
                                    </DataTemplate>
                                </ListBox.ItemTemplate>
                            </ListBox>

                            <Button Margin="0 10 0 0" Padding="5" Command="{Binding MultiController.ClearCommand}">Clear</Button>
                        </StackPanel>
                    </Border>
                </Grid>
            </TabItem>
        </TabControl>
    </Grid>
</Window>