Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2014, 16:40   #1
REztor
Форумчанин
 
Регистрация: 28.02.2009
Сообщений: 302
По умолчанию Изменение кнопки

Всем привет. Можете помочь, как можно сделать, чтобы при наведении на кнопку, она наполовину меняла цвет? И еще при нажатии на кнопку менялся цвет с задержкой на несколько секунд? Также как можно сделать произвольную форму кнопки?
Код:
<Window x:Class="WpfApplication10.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <ControlTemplate x:Key="TemplateB" TargetType="Button">
            <Border BorderBrush="Orange" BorderThickness="3" CornerRadius="2" Name="bor"
                  TextBlock.Foreground="Red">
                <Border.Background>
                    <LinearGradientBrush>
                        <GradientStopCollection>
                            <GradientStop Offset="0" Color="Yellow"></GradientStop>
                            <GradientStop Offset="1" Color="Green"></GradientStop>
                        </GradientStopCollection>
                    </LinearGradientBrush>
                </Border.Background>
                <ContentPresenter RecognizesAccessKey="True" Margin="{TemplateBinding Padding}"></ContentPresenter>
            </Border>
            <ControlTemplate.Triggers>
                <Trigger Property="IsMouseOver" Value="true">
                    <Setter TargetName="bor" Property="Background" Value="Green"></Setter>
                </Trigger>
                <Trigger Property="IsPressed" Value="True">
                    <Setter TargetName="bor" Property="Background" Value="Red"></Setter>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
    </Window.Resources>
    <Button Margin="10" Width="130" Height="130" Template="{StaticResource TemplateB}"></Button>
</Window>
REztor вне форума Ответить с цитированием
Старый 12.10.2014, 16:44   #2
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Рекомендую к прочтению:
http://habrahabr.ru/post/111126/
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 13.10.2014, 23:41   #3
REztor
Форумчанин
 
Регистрация: 28.02.2009
Сообщений: 302
По умолчанию

Как правильно использовать свойство KeyTime, что установить время задержки цвета при нажатии на кнопку?
REztor вне форума Ответить с цитированием
Старый 14.10.2014, 12:22   #4
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Вам скорее подойдет BeginTime, это свойство задает задержку перед запуском анимации. Вот пример http://samples.msdn.microsoft.com/Si...sref=BeginTime
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 14.10.2014, 16:24   #5
REztor
Форумчанин
 
Регистрация: 28.02.2009
Сообщений: 302
По умолчанию

Помогите найти ошибку, необходимо по нажатию кнопки, чтобы она меня цвет наполовину, и цвет держался несколько секунд, у меня она просто меняет цвет
Код:
<Window x:Class="WpfApplication12.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
            <ControlTemplate x:Key="TemplateB" TargetType="Button">
            <Border BorderBrush="Orange" BorderThickness="3" CornerRadius="2" Name="bor"
                  TextBlock.Foreground="Red">
                <Border.Background>
                    <LinearGradientBrush>
                        <GradientStopCollection>
                            <GradientStop Offset="0" Color="Yellow"></GradientStop>
                            <GradientStop Offset="1" Color="Green"></GradientStop>
                        </GradientStopCollection>
                    </LinearGradientBrush>
                </Border.Background>
                <ContentPresenter RecognizesAccessKey="True" Margin="{TemplateBinding Padding}"></ContentPresenter>
            </Border>
            <ControlTemplate.Triggers>
                <Trigger Property="IsMouseOver" Value="true">
                    <Setter TargetName="bor" Property="Background" Value="Green"></Setter>
                </Trigger>
                <!--Trigger Property="IsPressed" Value="True">
                    <Setter TargetName="bor" Property="Background" Value="Red"></Setter>
                </Trigger-->
            </ControlTemplate.Triggers>
        </ControlTemplate>
        <ControlTemplate x:Key="TemplateA" TargetType="Button">
            <Border Name="bor"
                  TextBlock.Foreground="Red">
                <Border.Background>
                    <LinearGradientBrush>
                        <GradientStopCollection>
                            <GradientStop Offset="0" Color="Yellow"></GradientStop>
                            <GradientStop Offset="1" Color="Green"></GradientStop>
                        </GradientStopCollection>
                    </LinearGradientBrush>
                </Border.Background>
                <ContentPresenter RecognizesAccessKey="True" Margin="{TemplateBinding Padding}"></ContentPresenter>
                <Border.Triggers>
                    <EventTrigger RoutedEvent="Border.MouseDown">
                        <EventTrigger.Actions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)">
                                        <LinearColorKeyFrame KeyTime="00:00:00" Value="Red"></LinearColorKeyFrame>
                                    </ColorAnimationUsingKeyFrames>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger.Actions>
                    </EventTrigger>
                </Border.Triggers>
            </Border>
            <ControlTemplate.Triggers>
                <Trigger Property="IsMouseOver" Value="true">
                    <Setter TargetName="bor" Property="Background" Value="Green"></Setter>
                </Trigger>
                <Trigger Property="IsPressed" Value="True">
                <Setter TargetName="bor"  Property="Background" Value="Red"></Setter>
                </Trigger>
            </ControlTemplate.Triggers>
            </ControlTemplate>
    </Window.Resources>
    <Button Margin="10" Width="130" Height="130" Template="{StaticResource TemplateB}">
    <Button Margin="65,0,0,0" Width="65" Height="130" Template="{StaticResource TemplateA}"></Button>
    </Button>
</Window>
REztor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение рисунка кнопки BitBtn bilibian Общие вопросы Delphi 3 04.09.2014 22:56
Изменение рисунка кнопки BitBtn bang Общие вопросы Delphi 10 07.05.2013 15:06
Изменение кнопки Painkiller_13 Общие вопросы Delphi 4 11.03.2012 16:49
изменение положения обекта по нажатию кнопки patch Общие вопросы Delphi 6 31.03.2011 00:37
Изменение назначения кнопки (Delphi) CAMOBAP Помощь студентам 6 11.12.2010 21:48