Mini Kabibi Habibi
<local:GaugesDemoModule x:Class="GaugesDemo.LinearScales"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
xmlns:dxga="http://schemas.devexpress.com/winfx/2008/xaml/gauges"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:local="clr-namespace:GaugesDemo"
mc:Ignorable="d" d:DesignHeight="820" d:DesignWidth="970">
<dxdb:DemoModule.Resources>
<ResourceDictionary>
<local:BoolToDefaultBooleanConvert x:Key="BoolToDefaultBooleanConverter" />
</ResourceDictionary>
</dxdb:DemoModule.Resources>
<dxdb:DemoModuleControl>
<dxdb:DemoModuleControl.OptionsContent>
<StackPanel>
<dx:GroupFrame Header="Labels">
<StackPanel>
<dxe:CheckEdit x:Name="ceShowLabels" Content="Show" Margin="0,0,0,2" IsChecked="False"/>
</StackPanel>
</dx:GroupFrame>
<dx:GroupFrame Header="Tickmarks" Margin="0,10,0,10">
<StackPanel>
<dxe:CheckEdit x:Name="ceShowMajor" Content="Show Major" Margin="0,0,0,2" IsChecked="True" />
<dxe:CheckEdit x:Name="ceShowMinor" Content="Show Minor" Margin="0,0,0,2" IsChecked="True" />
</StackPanel>
</dx:GroupFrame>
</StackPanel>
</dxdb:DemoModuleControl.OptionsContent>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="6*" MinHeight="30"/>
<RowDefinition Height="Auto" />
<RowDefinition Height="4*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="1" Text="Equalizer" Margin="0,5,0,0" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="22" Foreground="#06697E"/>
<dxga:LinearGaugeControl x:Name="gauge" Grid.Row="1" Grid.Column="1" Width="600" Height="400" EnableAnimation="True">
<dxga:LinearGaugeControl.ScalePanelTemplate>
<ItemsPanelTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
</Grid>
</ItemsPanelTemplate>
</dxga:LinearGaugeControl.ScalePanelTemplate>
<dxga:LinearGaugeControl.Model>
<dxga:LinearMagicLightModel/>
</dxga:LinearGaugeControl.Model>
<dxga:LinearGaugeControl.Layers>
<dxga:LinearGaugeLayer/>
</dxga:LinearGaugeControl.Layers>
<dxga:LinearGaugeControl.Scales>
<dxga:LinearScale Grid.Column="0" MajorIntervalCount="2" MinorIntervalCount="5"
ShowMajorTickmarks="{Binding ElementName=ceShowMajor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowMinorTickmarks="{Binding ElementName=ceShowMinor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowLabels="{Binding ElementName=ceShowLabels, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}">
<dxga:LinearScale.MajorTickmarkOptions>
<dxga:MajorTickmarkOptions Offset="5"/>
</dxga:LinearScale.MajorTickmarkOptions>
<dxga:LinearScale.MinorTickmarkOptions>
<dxga:MinorTickmarkOptions Offset="5" ShowTicksForMajor="True"/>
</dxga:LinearScale.MinorTickmarkOptions>
<dxga:LinearScale.CustomLabels>
<dxga:ScaleCustomLabel Content="32Hz" Offset="-12" Value="-1" Foreground="#FF62D7E7"/>
</dxga:LinearScale.CustomLabels>
<dxga:LinearScale.LabelOptions>
<dxga:LinearScaleLabelOptions Offset="-23"/>
</dxga:LinearScale.LabelOptions>
<dxga:LinearScale.RangeBars>
<dxga:LinearScaleRangeBar Value="{Binding Frequency32}">
<dxga:LinearScaleRangeBar.Options>
<dxga:LinearScaleRangeBarOptions Offset="0" Thickness="30" ZIndex="150"/>
</dxga:LinearScaleRangeBar.Options>
</dxga:LinearScaleRangeBar>
</dxga:LinearScale.RangeBars>
</dxga:LinearScale>
<dxga:LinearScale Grid.Column="1" MajorIntervalCount="2" MinorIntervalCount="5"
ShowMajorTickmarks="{Binding ElementName=ceShowMajor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowMinorTickmarks="{Binding ElementName=ceShowMinor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowLabels="{Binding ElementName=ceShowLabels, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}">
<dxga:LinearScale.MajorTickmarkOptions>
<dxga:MajorTickmarkOptions Offset="5"/>
</dxga:LinearScale.MajorTickmarkOptions>
<dxga:LinearScale.MinorTickmarkOptions>
<dxga:MinorTickmarkOptions Offset="5" ShowTicksForMajor="True"/>
</dxga:LinearScale.MinorTickmarkOptions>
<dxga:LinearScale.CustomLabels>
<dxga:ScaleCustomLabel Content="64Hz" Offset="-12" Value="-1" Foreground="#FF62D7E7"/>
</dxga:LinearScale.CustomLabels>
<dxga:LinearScale.LabelOptions>
<dxga:LinearScaleLabelOptions Offset="-23"/>
</dxga:LinearScale.LabelOptions>
<dxga:LinearScale.RangeBars>
<dxga:LinearScaleRangeBar Value="{Binding Frequency64}">
<dxga:LinearScaleRangeBar.Options>
<dxga:LinearScaleRangeBarOptions Offset="0" Thickness="30" ZIndex="150"/>
</dxga:LinearScaleRangeBar.Options>
</dxga:LinearScaleRangeBar>
</dxga:LinearScale.RangeBars>
</dxga:LinearScale>
<dxga:LinearScale Grid.Column="2" MajorIntervalCount="2" MinorIntervalCount="5"
ShowMajorTickmarks="{Binding ElementName=ceShowMajor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowMinorTickmarks="{Binding ElementName=ceShowMinor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowLabels="{Binding ElementName=ceShowLabels, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}">
<dxga:LinearScale.MajorTickmarkOptions>
<dxga:MajorTickmarkOptions Offset="5"/>
</dxga:LinearScale.MajorTickmarkOptions>
<dxga:LinearScale.MinorTickmarkOptions>
<dxga:MinorTickmarkOptions Offset="5" ShowTicksForMajor="True"/>
</dxga:LinearScale.MinorTickmarkOptions>
<dxga:LinearScale.CustomLabels>
<dxga:ScaleCustomLabel Content="125Hz" Offset="-14" Value="-1" Foreground="#FF62D7E7"/>
</dxga:LinearScale.CustomLabels>
<dxga:LinearScale.LabelOptions>
<dxga:LinearScaleLabelOptions Offset="-23"/>
</dxga:LinearScale.LabelOptions>
<dxga:LinearScale.RangeBars>
<dxga:LinearScaleRangeBar Value="{Binding Frequency125}">
<dxga:LinearScaleRangeBar.Options>
<dxga:LinearScaleRangeBarOptions Offset="0" Thickness="30" ZIndex="150"/>
</dxga:LinearScaleRangeBar.Options>
</dxga:LinearScaleRangeBar>
</dxga:LinearScale.RangeBars>
</dxga:LinearScale>
<dxga:LinearScale Grid.Column="3" MajorIntervalCount="2" MinorIntervalCount="5"
ShowMajorTickmarks="{Binding ElementName=ceShowMajor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowMinorTickmarks="{Binding ElementName=ceShowMinor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowLabels="{Binding ElementName=ceShowLabels, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}">
<dxga:LinearScale.MajorTickmarkOptions>
<dxga:MajorTickmarkOptions Offset="5"/>
</dxga:LinearScale.MajorTickmarkOptions>
<dxga:LinearScale.MinorTickmarkOptions>
<dxga:MinorTickmarkOptions Offset="5" ShowTicksForMajor="True"/>
</dxga:LinearScale.MinorTickmarkOptions>
<dxga:LinearScale.CustomLabels>
<dxga:ScaleCustomLabel Content="250Hz" Offset="-14" Value="-1" Foreground="#FF62D7E7"/>
</dxga:LinearScale.CustomLabels>
<dxga:LinearScale.LabelOptions>
<dxga:LinearScaleLabelOptions Offset="-23"/>
</dxga:LinearScale.LabelOptions>
<dxga:LinearScale.RangeBars>
<dxga:LinearScaleRangeBar Value="{Binding Frequency250}">
<dxga:LinearScaleRangeBar.Options>
<dxga:LinearScaleRangeBarOptions Offset="0" Thickness="30" ZIndex="150"/>
</dxga:LinearScaleRangeBar.Options>
</dxga:LinearScaleRangeBar>
</dxga:LinearScale.RangeBars>
</dxga:LinearScale>
<dxga:LinearScale Grid.Column="4" MajorIntervalCount="2" MinorIntervalCount="5"
ShowMajorTickmarks="{Binding ElementName=ceShowMajor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowMinorTickmarks="{Binding ElementName=ceShowMinor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowLabels="{Binding ElementName=ceShowLabels, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}">
<dxga:LinearScale.MajorTickmarkOptions>
<dxga:MajorTickmarkOptions Offset="5"/>
</dxga:LinearScale.MajorTickmarkOptions>
<dxga:LinearScale.MinorTickmarkOptions>
<dxga:MinorTickmarkOptions Offset="5" ShowTicksForMajor="True"/>
</dxga:LinearScale.MinorTickmarkOptions>
<dxga:LinearScale.CustomLabels>
<dxga:ScaleCustomLabel Content="500Hz" Offset="-14" Value="-1" Foreground="#FF62D7E7"/>
</dxga:LinearScale.CustomLabels>
<dxga:LinearScale.LabelOptions>
<dxga:LinearScaleLabelOptions Offset="-23"/>
</dxga:LinearScale.LabelOptions>
<dxga:LinearScale.RangeBars>
<dxga:LinearScaleRangeBar Value="{Binding Frequency500}">
<dxga:LinearScaleRangeBar.Options>
<dxga:LinearScaleRangeBarOptions Offset="0" Thickness="30" ZIndex="150"/>
</dxga:LinearScaleRangeBar.Options>
</dxga:LinearScaleRangeBar>
</dxga:LinearScale.RangeBars>
</dxga:LinearScale>
<dxga:LinearScale Grid.Column="5" MajorIntervalCount="2" MinorIntervalCount="5"
ShowMajorTickmarks="{Binding ElementName=ceShowMajor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowMinorTickmarks="{Binding ElementName=ceShowMinor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowLabels="{Binding ElementName=ceShowLabels, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}">
<dxga:LinearScale.MajorTickmarkOptions>
<dxga:MajorTickmarkOptions Offset="5"/>
</dxga:LinearScale.MajorTickmarkOptions>
<dxga:LinearScale.MinorTickmarkOptions>
<dxga:MinorTickmarkOptions Offset="5" ShowTicksForMajor="True"/>
</dxga:LinearScale.MinorTickmarkOptions>
<dxga:LinearScale.CustomLabels>
<dxga:ScaleCustomLabel Content="1kHz" Offset="-12" Value="-1" Foreground="#FF62D7E7"/>
</dxga:LinearScale.CustomLabels>
<dxga:LinearScale.LabelOptions>
<dxga:LinearScaleLabelOptions Offset="-23"/>
</dxga:LinearScale.LabelOptions>
<dxga:LinearScale.RangeBars>
<dxga:LinearScaleRangeBar Value="{Binding Frequency1K}">
<dxga:LinearScaleRangeBar.Options>
<dxga:LinearScaleRangeBarOptions Offset="0" Thickness="30" ZIndex="150"/>
</dxga:LinearScaleRangeBar.Options>
</dxga:LinearScaleRangeBar>
</dxga:LinearScale.RangeBars>
</dxga:LinearScale>
<dxga:LinearScale Grid.Column="6" MajorIntervalCount="2" MinorIntervalCount="5"
ShowMajorTickmarks="{Binding ElementName=ceShowMajor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowMinorTickmarks="{Binding ElementName=ceShowMinor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowLabels="{Binding ElementName=ceShowLabels, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}">
<dxga:LinearScale.MajorTickmarkOptions>
<dxga:MajorTickmarkOptions Offset="5"/>
</dxga:LinearScale.MajorTickmarkOptions>
<dxga:LinearScale.MinorTickmarkOptions>
<dxga:MinorTickmarkOptions Offset="5" ShowTicksForMajor="True"/>
</dxga:LinearScale.MinorTickmarkOptions>
<dxga:LinearScale.CustomLabels>
<dxga:ScaleCustomLabel Content="2kHz" Offset="-12" Value="-1" Foreground="#FF62D7E7"/>
</dxga:LinearScale.CustomLabels>
<dxga:LinearScale.LabelOptions>
<dxga:LinearScaleLabelOptions Offset="-23"/>
</dxga:LinearScale.LabelOptions>
<dxga:LinearScale.RangeBars>
<dxga:LinearScaleRangeBar Value="{Binding Frequency2K}">
<dxga:LinearScaleRangeBar.Options>
<dxga:LinearScaleRangeBarOptions Offset="0" Thickness="30" ZIndex="150"/>
</dxga:LinearScaleRangeBar.Options>
</dxga:LinearScaleRangeBar>
</dxga:LinearScale.RangeBars>
</dxga:LinearScale>
<dxga:LinearScale Grid.Column="7" MajorIntervalCount="2" MinorIntervalCount="5"
ShowMajorTickmarks="{Binding ElementName=ceShowMajor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowMinorTickmarks="{Binding ElementName=ceShowMinor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowLabels="{Binding ElementName=ceShowLabels, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}">
<dxga:LinearScale.MajorTickmarkOptions>
<dxga:MajorTickmarkOptions Offset="5"/>
</dxga:LinearScale.MajorTickmarkOptions>
<dxga:LinearScale.MinorTickmarkOptions>
<dxga:MinorTickmarkOptions Offset="5" ShowTicksForMajor="True"/>
</dxga:LinearScale.MinorTickmarkOptions>
<dxga:LinearScale.CustomLabels>
<dxga:ScaleCustomLabel Content="4kHz" Offset="-12" Value="-1" Foreground="#FF62D7E7"/>
</dxga:LinearScale.CustomLabels>
<dxga:LinearScale.LabelOptions>
<dxga:LinearScaleLabelOptions Offset="-23"/>
</dxga:LinearScale.LabelOptions>
<dxga:LinearScale.RangeBars>
<dxga:LinearScaleRangeBar Value="{Binding Frequency4K}">
<dxga:LinearScaleRangeBar.Options>
<dxga:LinearScaleRangeBarOptions Offset="0" Thickness="30" ZIndex="150"/>
</dxga:LinearScaleRangeBar.Options>
</dxga:LinearScaleRangeBar>
</dxga:LinearScale.RangeBars>
</dxga:LinearScale>
<dxga:LinearScale Grid.Column="8" MajorIntervalCount="2" MinorIntervalCount="5"
ShowMajorTickmarks="{Binding ElementName=ceShowMajor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowMinorTickmarks="{Binding ElementName=ceShowMinor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowLabels="{Binding ElementName=ceShowLabels, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}">
<dxga:LinearScale.MajorTickmarkOptions>
<dxga:MajorTickmarkOptions Offset="5"/>
</dxga:LinearScale.MajorTickmarkOptions>
<dxga:LinearScale.MinorTickmarkOptions>
<dxga:MinorTickmarkOptions Offset="5" ShowTicksForMajor="True"/>
</dxga:LinearScale.MinorTickmarkOptions>
<dxga:LinearScale.CustomLabels>
<dxga:ScaleCustomLabel Content="8kHz" Offset="-12" Value="-1" Foreground="#FF62D7E7"/>
</dxga:LinearScale.CustomLabels>
<dxga:LinearScale.LabelOptions>
<dxga:LinearScaleLabelOptions Offset="-23"/>
</dxga:LinearScale.LabelOptions>
<dxga:LinearScale.RangeBars>
<dxga:LinearScaleRangeBar Value="{Binding Frequency8K}">
<dxga:LinearScaleRangeBar.Options>
<dxga:LinearScaleRangeBarOptions Offset="0" Thickness="30" ZIndex="150"/>
</dxga:LinearScaleRangeBar.Options>
</dxga:LinearScaleRangeBar>
</dxga:LinearScale.RangeBars>
</dxga:LinearScale>
<dxga:LinearScale Grid.Column="9" MajorIntervalCount="2" MinorIntervalCount="5"
ShowMajorTickmarks="{Binding ElementName=ceShowMajor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowMinorTickmarks="{Binding ElementName=ceShowMinor, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}"
ShowLabels="{Binding ElementName=ceShowLabels, Path=IsChecked, Converter={StaticResource BoolToDefaultBooleanConverter}}">
<dxga:LinearScale.MajorTickmarkOptions>
<dxga:MajorTickmarkOptions Offset="5"/>
</dxga:LinearScale.MajorTickmarkOptions>
<dxga:LinearScale.MinorTickmarkOptions>
<dxga:MinorTickmarkOptions Offset="5" ShowTicksForMajor="True"/>
</dxga:LinearScale.MinorTickmarkOptions>
<dxga:LinearScale.CustomLabels>
<dxga:ScaleCustomLabel Content="16kHz" Offset="-14" Value="-1" Foreground="#FF62D7E7"/>
</dxga:LinearScale.CustomLabels>
<dxga:LinearScale.LabelOptions>
<dxga:LinearScaleLabelOptions Offset="-23"/>
</dxga:LinearScale.LabelOptions>
<dxga:LinearScale.RangeBars>
<dxga:LinearScaleRangeBar Value="{Binding Frequency16K}">
<dxga:LinearScaleRangeBar.Options>
<dxga:LinearScaleRangeBarOptions Offset="0" Thickness="30" ZIndex="150"/>
</dxga:LinearScaleRangeBar.Options>
</dxga:LinearScaleRangeBar>
</dxga:LinearScale.RangeBars>
</dxga:LinearScale>
</dxga:LinearGaugeControl.Scales>
</dxga:LinearGaugeControl>
</Grid>
</dxdb:DemoModuleControl>
</local:GaugesDemoModule>