Анимация всего окна вместо компонентов

171
14 апреля 2017, 19:33

После того как установил бинд цвета к ресурсу приложения <SolidColorBrush x:Key="ContrastBrush" Color="{Binding ContrastBrush, Source={x:Static properties:Settings.Default}}"/> все компоненты имеющие общий цвет 'ContrastBrush' начали анимироваться при наведении на кнопки окна. Так же textbox постоянно меняет свое значение во время анимации. И при попытке нажать на кнопку "Accept" выдает ошибку: Token is not valid.

  1. Как правильно установить бинд цвета, чтоб анимация была только на кнопках и не затрагивала другие компоненты?
  2. Была возможность изменить значение из textbox'a и при следующем запуске приложения, компоненты и анимация поменяли цвет?
private void acceptButton_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
    Properties.Settings.Default.ContrastBrush = (Color)ColorConverter.ConvertFromString(contrastBrushTextBox.Text);
    Properties.Settings.Default.Save();
}
    <Window x:Class="svchost_graphic_control_panel.SettingsWindow"
                    <!--Code-->
                    xmlns:local="clr-namespace:svchost_graphic_control_panel"
                    mc:Ignorable="d"
                    Title="SettingsWindow" Height="300" Width="300" WindowStartupLocation="CenterScreen" WindowStyle="None" AllowsTransparency="True" Background="{x:Null}" BorderBrush="#00000000" Foreground="{x:Null}" Margin="5" ResizeMode="NoResize">
                <Window.Effect>
                    <DropShadowEffect Opacity="0.5"/>
                </Window.Effect>
                <Grid>
                <Border BorderThickness="0,0,0,1" Grid.ColumnSpan="4" d:IsLocked="True"
                        BorderBrush="{StaticResource ContrastBrush}" />
                <TextBox x:Name="contrastBrushTextBox" Height="26" Margin="0,72,23.5,0" TextWrapping="Wrap" VerticalAlignment="Top" Background="{x:Null}" FontSize="16" Padding="0" VerticalContentAlignment="Center" HorizontalAlignment="Right" Width="118"
                     BorderBrush="{StaticResource ContrastBrush}" Foreground="{StaticResource TextBrush}" 
                     Style="{StaticResource TextBoxStyle1}" 
                     Text="{Binding Color, Mode=TwoWay, Source={StaticResource ContrastBrush}}" />
            <Grid x:Name="BottonGrid" Grid.Row="1">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition/>
                                <ColumnDefinition Width="76"/>
                            </Grid.ColumnDefinitions>
                            <Label Content="Accept" Margin="2,2,2,3" Background="{x:Null}" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" Padding="0,0,0,2" FontSize="16" Grid.Column="2" d:LayoutOverrides="VerticalAlignment" d:IsLocked="True"
                                   Foreground="{StaticResource TextBrush}" />
                            <Rectangle x:Name="acceptButton" Margin="2,2,2,3" RadiusY="6" RadiusX="6" Fill="#00000000" Grid.Column="2" d:LayoutOverrides="LeftMargin, RightMargin" MouseLeftButtonUp="acceptButton_MouseLeftButtonUp"
                                       Stroke="{StaticResource ContrastBrush}" 
                                       Style="{StaticResource SystemButtonStyle1}" />
                 </Grid>
            </Grid>
        </Window>
    <Application 
    <!--code-->
    xmlns:properties="clr-namespace:svchost_graphic_control_panel.Properties">
        <Application.Resources>
            <Color x:Key="ContrastBrushColor">#FF74C365</Color>
            <SolidColorBrush x:Key="TextBrush" Color="{Binding TextBrush, Source={x:Static properties:Settings.Default}}"/>
            <SolidColorBrush x:Key="SecondTextBrush" Color="{Binding SecondTextBrush, Source={x:Static properties:Settings.Default}}"/>
            <SolidColorBrush x:Key="ContrastBrush" Color="{Binding ContrastBrush, Source={x:Static properties:Settings.Default}}"/>
            <SolidColorBrush x:Key="BackgroundBrush" Color="{Binding BackgroundBrush, Source={x:Static properties:Settings.Default}}"/>
    <Style x:Key="SystemButtonStyle1" TargetType="{x:Type Rectangle}">
                <Style.Resources>
                    <Storyboard x:Key="OnMouseEnter1" RepeatBehavior="Forever">
                        <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Stroke).(SolidColorBrush.Color)" Storyboard.TargetName="{x:Null}">
                            <SplineColorKeyFrame KeyTime="0" Value="{StaticResource ContrastBrushColor}"/> 
                            <SplineColorKeyFrame KeyTime="0:0:0.6" Value="Transparent"/>
                            <SplineColorKeyFrame KeyTime="0:0:1.2" Value="{StaticResource ContrastBrushColor}"/> 
                        </ColorAnimationUsingKeyFrames>
                    </Storyboard>
                </Style.Resources>
    <!--code-->
    </Style>
</Application> 

READ ALSO
Связи между двумя dbGrid-ами - C#

Связи между двумя dbGrid-ами - C#

Имеется привязанная база данных Access cо связями

221
Как создать общий List&lt;&gt; для всех форм?(WinForms, C#)

Как создать общий List<> для всех форм?(WinForms, C#)

У меня есть две формы, одна добавляет в лист данные, вторая считывает, как можно это реализовать?

208
ASP.NET WebForms выбор шаблона столбца GridView

ASP.NET WebForms выбор шаблона столбца GridView

Есть GridViewВ нем есть TemplateField

216