mirror of
https://github.com/DarthAffe/KeyboardAudioVisualizer.git
synced 2025-12-12 15:18:30 +00:00
Fixed visibility for disabled equalizers, added reset button
This commit is contained in:
parent
9dcf82e6aa
commit
d4b5d186a4
@ -59,7 +59,7 @@ namespace KeyboardAudioVisualizer.AudioProcessing
|
|||||||
_spectrumProvider.Initialize();
|
_spectrumProvider.Initialize();
|
||||||
|
|
||||||
//TODO DarthAffe 03.08.2017: Initialize correctly; Settings
|
//TODO DarthAffe 03.08.2017: Initialize correctly; Settings
|
||||||
MultiBandEqualizer equalizer = new MultiBandEqualizer();
|
MultiBandEqualizer equalizer = new MultiBandEqualizer { IsEnabled = false };
|
||||||
PrimaryVisualizationProvider = new FrequencyBarsVisualizationProvider(new FrequencyBarsVisualizationProviderConfiguration(), _spectrumProvider) { Equalizer = equalizer };
|
PrimaryVisualizationProvider = new FrequencyBarsVisualizationProvider(new FrequencyBarsVisualizationProviderConfiguration(), _spectrumProvider) { Equalizer = equalizer };
|
||||||
//PrimaryVisualizationProvider = new BeatVisualizationProvider(new BeatVisualizationProviderConfiguration(), _spectrumProvider);
|
//PrimaryVisualizationProvider = new BeatVisualizationProvider(new BeatVisualizationProviderConfiguration(), _spectrumProvider);
|
||||||
PrimaryVisualizationProvider.Initialize();
|
PrimaryVisualizationProvider.Initialize();
|
||||||
|
|||||||
@ -12,5 +12,7 @@ namespace KeyboardAudioVisualizer.AudioProcessing.Equalizer
|
|||||||
|
|
||||||
EqualizerBand AddBand(float offset, float modification);
|
EqualizerBand AddBand(float offset, float modification);
|
||||||
void RemoveBandBand(EqualizerBand band);
|
void RemoveBandBand(EqualizerBand band);
|
||||||
|
|
||||||
|
void Reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,7 +14,12 @@ namespace KeyboardAudioVisualizer.AudioProcessing.Equalizer
|
|||||||
|
|
||||||
private readonly Dictionary<int, float[]> _values = new Dictionary<int, float[]>();
|
private readonly Dictionary<int, float[]> _values = new Dictionary<int, float[]>();
|
||||||
|
|
||||||
public bool IsEnabled { get; set; } = true;
|
private bool _isEnabled;
|
||||||
|
public bool IsEnabled
|
||||||
|
{
|
||||||
|
get => _isEnabled;
|
||||||
|
set => SetProperty(ref _isEnabled, value);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@ -22,8 +27,7 @@ namespace KeyboardAudioVisualizer.AudioProcessing.Equalizer
|
|||||||
|
|
||||||
public MultiBandEqualizer()
|
public MultiBandEqualizer()
|
||||||
{
|
{
|
||||||
AddBand(0, 0, true);
|
Reset();
|
||||||
AddBand(1, 0, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@ -51,6 +55,13 @@ namespace KeyboardAudioVisualizer.AudioProcessing.Equalizer
|
|||||||
InvalidateCache();
|
InvalidateCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Reset()
|
||||||
|
{
|
||||||
|
Bands.Clear();
|
||||||
|
AddBand(0, 0, true);
|
||||||
|
AddBand(1, 0, true);
|
||||||
|
}
|
||||||
|
|
||||||
public float[] CalculateValues(int count)
|
public float[] CalculateValues(int count)
|
||||||
{
|
{
|
||||||
if (!_values.TryGetValue(count, out float[] values))
|
if (!_values.TryGetValue(count, out float[] values))
|
||||||
@ -66,6 +77,7 @@ namespace KeyboardAudioVisualizer.AudioProcessing.Equalizer
|
|||||||
float[] values = new float[count];
|
float[] values = new float[count];
|
||||||
|
|
||||||
List<EqualizerBand> orderedBands = Bands.OrderBy(x => x.Offset).ToList();
|
List<EqualizerBand> orderedBands = Bands.OrderBy(x => x.Offset).ToList();
|
||||||
|
if (orderedBands.Count < 2) return values;
|
||||||
|
|
||||||
for (int i = 0; i < count; i++)
|
for (int i = 0; i < count; i++)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -10,7 +10,9 @@ namespace KeyboardAudioVisualizer.Converter
|
|||||||
{
|
{
|
||||||
#region Methods
|
#region Methods
|
||||||
|
|
||||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) => (value as bool?) == true ? Visibility.Visible : Visibility.Collapsed;
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
=> (value as bool?) == true ? Visibility.Visible
|
||||||
|
: (string.Equals(parameter?.ToString(), "true", StringComparison.OrdinalIgnoreCase) ? Visibility.Hidden : Visibility.Collapsed);
|
||||||
|
|
||||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) => value as Visibility? == Visibility.Visible;
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) => value as Visibility? == Visibility.Visible;
|
||||||
|
|
||||||
|
|||||||
@ -206,6 +206,10 @@
|
|||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</Page>
|
</Page>
|
||||||
|
<Page Include="Styles\Button.xaml">
|
||||||
|
<Generator>MSBuild:Compile</Generator>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Page>
|
||||||
<Page Include="Styles\ImageButton.xaml">
|
<Page Include="Styles\ImageButton.xaml">
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
|
|||||||
@ -12,6 +12,7 @@
|
|||||||
<styles:CachedResourceDictionary Source="/KeyboardAudioVisualizer;component/Styles/GroupBox.xaml" />
|
<styles:CachedResourceDictionary Source="/KeyboardAudioVisualizer;component/Styles/GroupBox.xaml" />
|
||||||
<styles:CachedResourceDictionary Source="/KeyboardAudioVisualizer;component/Styles/ToolTip.xaml" />
|
<styles:CachedResourceDictionary Source="/KeyboardAudioVisualizer;component/Styles/ToolTip.xaml" />
|
||||||
<styles:CachedResourceDictionary Source="/KeyboardAudioVisualizer;component/Styles/ComboBox.xaml" />
|
<styles:CachedResourceDictionary Source="/KeyboardAudioVisualizer;component/Styles/ComboBox.xaml" />
|
||||||
|
<styles:CachedResourceDictionary Source="/KeyboardAudioVisualizer;component/Styles/Button.xaml" />
|
||||||
</styles:CachedResourceDictionary.MergedDictionaries>
|
</styles:CachedResourceDictionary.MergedDictionaries>
|
||||||
|
|
||||||
<converter:EqualsToBoolConverter x:Key="EqualsToBoolConverter" />
|
<converter:EqualsToBoolConverter x:Key="EqualsToBoolConverter" />
|
||||||
@ -24,6 +25,7 @@
|
|||||||
<Style TargetType="GroupBox" BasedOn="{StaticResource StyleGroupBoxBox}" />
|
<Style TargetType="GroupBox" BasedOn="{StaticResource StyleGroupBoxBox}" />
|
||||||
<Style TargetType="ToolTip" BasedOn="{StaticResource StyleToolTip}" />
|
<Style TargetType="ToolTip" BasedOn="{StaticResource StyleToolTip}" />
|
||||||
<Style TargetType="ComboBox" BasedOn="{StaticResource StyleComboBox}" />
|
<Style TargetType="ComboBox" BasedOn="{StaticResource StyleComboBox}" />
|
||||||
|
<Style TargetType="Button" BasedOn="{StaticResource StyleButton}" />
|
||||||
|
|
||||||
</styles:CachedResourceDictionary>
|
</styles:CachedResourceDictionary>
|
||||||
|
|
||||||
|
|||||||
41
KeyboardAudioVisualizer/Styles/Button.xaml
Normal file
41
KeyboardAudioVisualizer/Styles/Button.xaml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<styles:CachedResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:styles="clr-namespace:KeyboardAudioVisualizer.Styles">
|
||||||
|
|
||||||
|
<styles:CachedResourceDictionary.MergedDictionaries>
|
||||||
|
<styles:CachedResourceDictionary Source="/KeyboardAudioVisualizer;component/Styles/FrameworkElement.xaml" />
|
||||||
|
<styles:CachedResourceDictionary Source="/KeyboardAudioVisualizer;component/Styles/Theme.xaml" />
|
||||||
|
</styles:CachedResourceDictionary.MergedDictionaries>
|
||||||
|
|
||||||
|
<Style x:Key="StyleButton"
|
||||||
|
BasedOn="{StaticResource StyleFrameworkElement}"
|
||||||
|
TargetType="Button">
|
||||||
|
<Setter Property="Foreground" Value="{StaticResource BrushButtonForeground}" />
|
||||||
|
<Setter Property="FontSize" Value="{StaticResource FontSizeDefault}" />
|
||||||
|
<Setter Property="FontFamily" Value="pack://application:,,,/Resources/#Cinzel" />
|
||||||
|
<Setter Property="Background" Value="{StaticResource BrushButtonBackground}" />
|
||||||
|
<Setter Property="BorderBrush" Value="{StaticResource BrushButtonBorder}" />
|
||||||
|
<Setter Property="BorderThickness" Value="2" />
|
||||||
|
<Setter Property="Padding" Value="4,2" />
|
||||||
|
|
||||||
|
<Setter Property="Template">
|
||||||
|
<Setter.Value>
|
||||||
|
<ControlTemplate TargetType="Button">
|
||||||
|
<Border BorderThickness="{TemplateBinding BorderThickness}"
|
||||||
|
BorderBrush="{TemplateBinding BorderBrush}"
|
||||||
|
Background="{TemplateBinding Background}">
|
||||||
|
<ContentPresenter Margin="{TemplateBinding Padding}" />
|
||||||
|
</Border>
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
|
||||||
|
<Style.Triggers>
|
||||||
|
<Trigger Property="IsMouseOver" Value="True">
|
||||||
|
<Setter Property="Background" Value="{StaticResource BrushButtonHover}" />
|
||||||
|
</Trigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
</styles:CachedResourceDictionary>
|
||||||
|
|
||||||
@ -29,12 +29,19 @@
|
|||||||
<SolidColorBrush x:Key="BrushTooltipBorder" presentationOptions:Freeze="True" Color="{StaticResource ColorJetBlack}" />
|
<SolidColorBrush x:Key="BrushTooltipBorder" presentationOptions:Freeze="True" Color="{StaticResource ColorJetBlack}" />
|
||||||
<SolidColorBrush x:Key="BrushTooltipBackground" presentationOptions:Freeze="True" Color="{StaticResource ColorJetBlackTransparent}" />
|
<SolidColorBrush x:Key="BrushTooltipBackground" presentationOptions:Freeze="True" Color="{StaticResource ColorJetBlackTransparent}" />
|
||||||
|
|
||||||
|
<!-- GroupBox -->
|
||||||
<SolidColorBrush x:Key="BrushComboBoxForeground" presentationOptions:Freeze="True" Color="{StaticResource ColorGainsboro}" />
|
<SolidColorBrush x:Key="BrushComboBoxForeground" presentationOptions:Freeze="True" Color="{StaticResource ColorGainsboro}" />
|
||||||
<SolidColorBrush x:Key="BrushComboBoxBackground" presentationOptions:Freeze="True" Color="{StaticResource ColorBuckinghamGrayTransparent}" />
|
<SolidColorBrush x:Key="BrushComboBoxBackground" presentationOptions:Freeze="True" Color="{StaticResource ColorBuckinghamGrayTransparent}" />
|
||||||
<SolidColorBrush x:Key="BrushComboBoxBackgroundPopup" presentationOptions:Freeze="True" Color="{StaticResource ColorBuckinghamGray}" />
|
<SolidColorBrush x:Key="BrushComboBoxBackgroundPopup" presentationOptions:Freeze="True" Color="{StaticResource ColorBuckinghamGray}" />
|
||||||
<SolidColorBrush x:Key="BrushComboBoxBorder" presentationOptions:Freeze="True" Color="{StaticResource ColorJetBlackTransparent}" />
|
<SolidColorBrush x:Key="BrushComboBoxBorder" presentationOptions:Freeze="True" Color="{StaticResource ColorJetBlackTransparent}" />
|
||||||
<SolidColorBrush x:Key="BrushComboBoxHover" presentationOptions:Freeze="True" Color="{StaticResource ColorJetBlack}" />
|
<SolidColorBrush x:Key="BrushComboBoxHover" presentationOptions:Freeze="True" Color="{StaticResource ColorJetBlack}" />
|
||||||
|
|
||||||
|
<!-- Button -->
|
||||||
|
<SolidColorBrush x:Key="BrushButtonForeground" presentationOptions:Freeze="True" Color="{StaticResource ColorGainsboro}" />
|
||||||
|
<SolidColorBrush x:Key="BrushButtonBackground" presentationOptions:Freeze="True" Color="{StaticResource ColorBuckinghamGrayTransparent}" />
|
||||||
|
<SolidColorBrush x:Key="BrushButtonBorder" presentationOptions:Freeze="True" Color="{StaticResource ColorJetBlackTransparent}" />
|
||||||
|
<SolidColorBrush x:Key="BrushButtonHover" presentationOptions:Freeze="True" Color="{StaticResource ColorJetBlack}" />
|
||||||
|
|
||||||
<!-- Navigation -->
|
<!-- Navigation -->
|
||||||
<SolidColorBrush x:Key="BrushNavigationItem" presentationOptions:Freeze="True" Color="{StaticResource ColorGainsboro}" />
|
<SolidColorBrush x:Key="BrushNavigationItem" presentationOptions:Freeze="True" Color="{StaticResource ColorGainsboro}" />
|
||||||
<SolidColorBrush x:Key="BrushNavigationItemBlur" presentationOptions:Freeze="True" Color="{StaticResource ColorBananaYellow}" />
|
<SolidColorBrush x:Key="BrushNavigationItemBlur" presentationOptions:Freeze="True" Color="{StaticResource ColorBananaYellow}" />
|
||||||
|
|||||||
@ -23,100 +23,90 @@
|
|||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<Setter.Value>
|
<Setter.Value>
|
||||||
<ControlTemplate TargetType="{x:Type visualization:EqualizerVisualizer}">
|
<ControlTemplate TargetType="{x:Type visualization:EqualizerVisualizer}">
|
||||||
<Grid x:Name="Container" Background="Transparent">
|
<Grid>
|
||||||
<Polyline x:Name="PART_Line" Stroke="White" StrokeThickness="2" StrokeLineJoin="Round">
|
<Grid x:Name="Container" Background="Transparent"
|
||||||
<Polyline.Points>
|
Visibility="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Equalizer.IsEnabled, Converter={StaticResource BoolToVisibilityConverter}}">
|
||||||
<MultiBinding Converter="{StaticResource EqualizerBandsToPointsConverter}" ConverterParameter="120">
|
<Polyline x:Name="PART_Line" Stroke="White" StrokeThickness="2" StrokeLineJoin="Round">
|
||||||
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Equalizer" />
|
<Polyline.Points>
|
||||||
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Equalizer.Bands" />
|
<MultiBinding Converter="{StaticResource EqualizerBandsToPointsConverter}" ConverterParameter="120">
|
||||||
<Binding Path="ActualWidth" ElementName="Container" />
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Equalizer" />
|
||||||
<Binding Path="ActualHeight" ElementName="Container" />
|
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Equalizer.Bands" />
|
||||||
</MultiBinding>
|
<Binding Path="ActualWidth" ElementName="Container" />
|
||||||
</Polyline.Points>
|
<Binding Path="ActualHeight" ElementName="Container" />
|
||||||
</Polyline>
|
</MultiBinding>
|
||||||
|
</Polyline.Points>
|
||||||
|
</Polyline>
|
||||||
|
|
||||||
<ItemsControl x:Name="PART_Grips" Opacity="0"
|
<ItemsControl x:Name="PART_Grips" Opacity="0"
|
||||||
Visibility="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Equalizer.IsEnabled, Converter={StaticResource BoolToVisibilityConverter}}"
|
ItemsSource="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Equalizer.Bands}">
|
||||||
ItemsSource="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Equalizer.Bands}">
|
<ItemsControl.ItemsPanel>
|
||||||
<ItemsControl.ItemsPanel>
|
<ItemsPanelTemplate>
|
||||||
<ItemsPanelTemplate>
|
<Canvas />
|
||||||
<Canvas />
|
</ItemsPanelTemplate>
|
||||||
</ItemsPanelTemplate>
|
</ItemsControl.ItemsPanel>
|
||||||
</ItemsControl.ItemsPanel>
|
|
||||||
|
|
||||||
<ItemsControl.ItemTemplate>
|
<ItemsControl.ItemTemplate>
|
||||||
<DataTemplate DataType="equalizer:EqualizerBand">
|
<DataTemplate DataType="equalizer:EqualizerBand">
|
||||||
<Border Width="24" Height="24" CornerRadius="12"
|
<Border Width="24" Height="24" CornerRadius="12"
|
||||||
BorderThickness="3" BorderBrush="{StaticResource BrushEqualizerBorder}"
|
BorderThickness="3" BorderBrush="{StaticResource BrushEqualizerBorder}"
|
||||||
Background="{StaticResource BrushEqualizerBackground}" />
|
Background="{StaticResource BrushEqualizerBackground}" />
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</ItemsControl.ItemTemplate>
|
</ItemsControl.ItemTemplate>
|
||||||
|
|
||||||
<ItemsControl.ItemContainerStyle>
|
<ItemsControl.ItemContainerStyle>
|
||||||
<Style TargetType="ContentPresenter">
|
<Style TargetType="ContentPresenter">
|
||||||
<Setter Property="Canvas.Left">
|
<Setter Property="Canvas.Left">
|
||||||
<Setter.Value>
|
<Setter.Value>
|
||||||
<MultiBinding Converter="{StaticResource OffsetToPosXConverter}" ConverterParameter="12">
|
<MultiBinding Converter="{StaticResource OffsetToPosXConverter}" ConverterParameter="12">
|
||||||
<Binding Path="Offset" />
|
<Binding Path="Offset" />
|
||||||
<Binding Path="ActualWidth" ElementName="PART_Grips" />
|
<Binding Path="ActualWidth" ElementName="PART_Grips" />
|
||||||
</MultiBinding>
|
</MultiBinding>
|
||||||
</Setter.Value>
|
</Setter.Value>
|
||||||
</Setter>
|
</Setter>
|
||||||
<Setter Property="Canvas.Top">
|
<Setter Property="Canvas.Top">
|
||||||
<Setter.Value>
|
<Setter.Value>
|
||||||
<MultiBinding Converter="{StaticResource ValueToPosYConverter}" ConverterParameter="12">
|
<MultiBinding Converter="{StaticResource ValueToPosYConverter}" ConverterParameter="12">
|
||||||
<Binding Path="Value" />
|
<Binding Path="Value" />
|
||||||
<Binding Path="ActualHeight" ElementName="PART_Grips" />
|
<Binding Path="ActualHeight" ElementName="PART_Grips" />
|
||||||
</MultiBinding>
|
</MultiBinding>
|
||||||
</Setter.Value>
|
</Setter.Value>
|
||||||
</Setter>
|
</Setter>
|
||||||
</Style>
|
</Style>
|
||||||
</ItemsControl.ItemContainerStyle>
|
</ItemsControl.ItemContainerStyle>
|
||||||
</ItemsControl>
|
</ItemsControl>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<StackPanel VerticalAlignment="Top" HorizontalAlignment="Left"
|
||||||
|
Margin="0,-4,0,0" Orientation="Horizontal">
|
||||||
|
<CheckBox VerticalAlignment="Center" Content="Enable Equalizer"
|
||||||
|
Foreground="{StaticResource BrushForeground}"
|
||||||
|
IsChecked="{Binding Path=Equalizer.IsEnabled, RelativeSource={RelativeSource TemplatedParent}}" />
|
||||||
|
|
||||||
|
<Button VerticalAlignment="Center" Margin="12,0,0,0"
|
||||||
|
Visibility="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Equalizer.IsEnabled, Converter={StaticResource BoolToVisibilityConverter}, ConverterParameter=True}"
|
||||||
|
Content="Reset" Command="{TemplateBinding ResetCommand}" />
|
||||||
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<ControlTemplate.Triggers>
|
<ControlTemplate.Triggers>
|
||||||
<MultiDataTrigger>
|
<Trigger Property="IsMouseOver" Value="True">
|
||||||
<MultiDataTrigger.Conditions>
|
<Trigger.EnterActions>
|
||||||
<Condition Binding="{Binding Path=IsMouseOver, RelativeSource={RelativeSource TemplatedParent}}" Value="True" />
|
|
||||||
<!--<Condition Binding="{Binding Path=Equalizer.IsEnabled, RelativeSource={RelativeSource AncestorType={x:Type visualization:EqualizerVisualizer}}}" Value="True" />-->
|
|
||||||
</MultiDataTrigger.Conditions>
|
|
||||||
<MultiDataTrigger.EnterActions>
|
|
||||||
<BeginStoryboard>
|
<BeginStoryboard>
|
||||||
<Storyboard>
|
<Storyboard>
|
||||||
<DoubleAnimation Duration="0:0:0.2" To="1"
|
<DoubleAnimation Duration="0:0:0.2" To="1"
|
||||||
Storyboard.TargetName="PART_Grips" Storyboard.TargetProperty="Opacity" />
|
Storyboard.TargetName="PART_Grips" Storyboard.TargetProperty="Opacity" />
|
||||||
</Storyboard>
|
</Storyboard>
|
||||||
</BeginStoryboard>
|
</BeginStoryboard>
|
||||||
</MultiDataTrigger.EnterActions>
|
</Trigger.EnterActions>
|
||||||
<MultiDataTrigger.ExitActions>
|
<Trigger.ExitActions>
|
||||||
<BeginStoryboard>
|
<BeginStoryboard>
|
||||||
<Storyboard>
|
<Storyboard>
|
||||||
<DoubleAnimation Duration="0:0:0.25" To="0"
|
<DoubleAnimation Duration="0:0:0.25" To="0"
|
||||||
Storyboard.TargetName="PART_Grips" Storyboard.TargetProperty="Opacity" />
|
Storyboard.TargetName="PART_Grips" Storyboard.TargetProperty="Opacity" />
|
||||||
</Storyboard>
|
</Storyboard>
|
||||||
</BeginStoryboard>
|
</BeginStoryboard>
|
||||||
</MultiDataTrigger.ExitActions>
|
</Trigger.ExitActions>
|
||||||
</MultiDataTrigger>
|
</Trigger>
|
||||||
|
|
||||||
<!--<DataTrigger Binding="{Binding Path=Equalizer.IsEnabled, RelativeSource={RelativeSource AncestorType={x:Type visualization:EqualizerVisualizer}}}" Value="False">
|
|
||||||
<DataTrigger.EnterActions>
|
|
||||||
<BeginStoryboard>
|
|
||||||
<Storyboard>
|
|
||||||
<DoubleAnimation Duration="0:0:0.2" To="1"
|
|
||||||
Storyboard.TargetName="PART_Line" Storyboard.TargetProperty="Opacity" />
|
|
||||||
</Storyboard>
|
|
||||||
</BeginStoryboard>
|
|
||||||
</DataTrigger.EnterActions>
|
|
||||||
<DataTrigger.ExitActions>
|
|
||||||
<BeginStoryboard>
|
|
||||||
<Storyboard>
|
|
||||||
<DoubleAnimation Duration="0:0:0.25" To="0"
|
|
||||||
Storyboard.TargetName="PART_Line" Storyboard.TargetProperty="Opacity" />
|
|
||||||
</Storyboard>
|
|
||||||
</BeginStoryboard>
|
|
||||||
</DataTrigger.ExitActions>
|
|
||||||
</DataTrigger>-->
|
|
||||||
</ControlTemplate.Triggers>
|
</ControlTemplate.Triggers>
|
||||||
</ControlTemplate>
|
</ControlTemplate>
|
||||||
</Setter.Value>
|
</Setter.Value>
|
||||||
|
|||||||
@ -22,6 +22,15 @@ namespace KeyboardAudioVisualizer.UI.Visualization
|
|||||||
set => SetValue(EqualizerProperty, value);
|
set => SetValue(EqualizerProperty, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static readonly DependencyProperty ResetCommandProperty = DependencyProperty.Register(
|
||||||
|
"ResetCommand", typeof(ICommand), typeof(EqualizerVisualizer), new PropertyMetadata(null));
|
||||||
|
|
||||||
|
public ICommand ResetCommand
|
||||||
|
{
|
||||||
|
get => (ICommand)GetValue(ResetCommandProperty);
|
||||||
|
set => SetValue(ResetCommandProperty, value);
|
||||||
|
}
|
||||||
|
|
||||||
// ReSharper restore InconsistentNaming
|
// ReSharper restore InconsistentNaming
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@ -34,6 +43,10 @@ namespace KeyboardAudioVisualizer.UI.Visualization
|
|||||||
|
|
||||||
#region Constructors
|
#region Constructors
|
||||||
|
|
||||||
|
public EqualizerVisualizer()
|
||||||
|
{
|
||||||
|
ResetCommand = new ActionCommand(() => Equalizer?.Reset());
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user