Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение кнопки 
:(
    Опции темы
WingfirE
Дата 13.10.2014, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 10.3.2012

Репутация: нет
Всего: нет



Всем привет. Можете помочь, как можно сделать, чтобы при наведении на кнопку, она наполовину меняла цвет? И еще при нажатии на кнопку менялся цвет с задержкой на несколько секунд? Также как можно сделать произвольную форму кнопки?
Как правильно использовать свойство KeyTime, что установить время задержки цвета при нажатии на кнопку?
Код

<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>

PM MAIL   Вверх
Ilya81
Дата 14.10.2014, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 18.4.2014
Где: ЛО, Всеволожский р-н

Репутация: 1
Всего: 4



Для формы кнопки и всего прочего замените Border на то, что нужно. Какая задержка - я не понял, лучше используйте анимацию - Trigger.EnterActions и Trigger.ExitActions. В Storyboard можете выставить просто общее время изменения цвета или, если нужно, чтоб он менялся нелинейно, то тогда KeyFrame.
PM MAIL ICQ Skype   Вверх
WingfirE
Дата 14.10.2014, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 10.3.2012

Репутация: нет
Всего: нет



Помогите найти ошибку, необходимо по нажатию кнопки, чтобы она меня цвет наполовину, и цвет держался несколько секунд, у меня она просто меняет цвет
Код

<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>

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.