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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.08.2016, 15:04   #1
savra
search money
Пользователь
 
Регистрация: 12.10.2009
Сообщений: 46
Восклицание Использование EventTrigger

Всем привет.

Есть кнопка с текстом "collapse" и ниже Grid.

По определенной причине использовать C# код нельзя. Необходимо чтобы при нажатии на кнопку, текст кнопки изменялся на "Details" и Grid становился невидимым, а при повторном нажатии грид появлялся и название кнопки обратно изменялось на "Collapse".

Нашел, что можно реализовать через EventTrigger

Я сделал чтобы Grid становился невидимым (Visibility = hidden) и изменялся текст на кнопке.

Как сделать чтобы при повторном нажатии он становился (Visibility = visible) и текст менялся обратно на "Collapse"?

Код:
<Window x:Class="WpfApplication1.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">
    <Grid>
        <Grid.Triggers>
            <EventTrigger SourceName="button1" RoutedEvent="Button.Click">
                <BeginStoryboard>
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="CollapsedGrid" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0:0:0">
                                <DiscreteObjectKeyFrame.Value>
                                    <Visibility>Hidden</Visibility>
                                </DiscreteObjectKeyFrame.Value>
                            </DiscreteObjectKeyFrame>
                        </ObjectAnimationUsingKeyFrames>
                    <StringAnimationUsingKeyFrames Storyboard.TargetName="button1" Storyboard.TargetProperty="Content">
                        <DiscreteStringKeyFrame KeyTime="0:0:0" Value="Details">

                        </DiscreteStringKeyFrame>
                    </StringAnimationUsingKeyFrames>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Grid.Triggers>

        <Button Content="Collapse" Height="23" HorizontalAlignment="Left" Margin="54,40,0,0" Name="button1" VerticalAlignment="Top" Width="75">
        </Button>
        <Grid x:Name="CollapsedGrid" Margin="40,97,69,37" Visibility="Visible">
            <Border Grid.ColumnSpan='2' BorderThickness='1' BorderBrush='#FFD4D4D4' Padding='10,5'>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width='Auto'/>
                        <ColumnDefinition Width='6'/>
                        <ColumnDefinition Width='*'/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height='Auto'/>
                        <RowDefinition Height='5'/>
                        <RowDefinition Height='Auto'/>
                        <RowDefinition Height='5'/>
                        <RowDefinition Height='Auto'/>
                        <RowDefinition Height='*'/>
                    </Grid.RowDefinitions>
                    <TextBlock Text='gfgfgfgfgfgfgf:'/>
                    <StackPanel  Orientation='Horizontal' Grid.Column='2'>
                        <TextBlock Text='100000000000000000.00' Margin='0,0,6,0'/>
                        <TextBlock Text='eur'/>
                    </StackPanel>
                    <TextBlock Text='tttttttttttttt:'  Grid.Row='2'/>
                    <StackPanel  Orientation='Horizontal'  Grid.Row='2' Grid.Column='2'  >
                        <TextBlock Text='0'   Margin='0,0,6,0'/>
                        <TextBlock Text='eur'/>
                    </StackPanel>
                    <TextBlock Text='rrrrrrrrrrrrrrrrr:'  Grid.Row='4'/>
                    <StackPanel  Orientation='Horizontal'  Grid.Row='4' Grid.Column='2' >
                        <TextBlock Text='10000000'   Margin='0,0,6,0'/>
                        <TextBlock Text='eur'/>
                    </StackPanel>
                </Grid>
            </Border>
        </Grid>
    </Grid>
</Window>
savra вне форума Ответить с цитированием
Старый 09.08.2016, 16:45   #2
savra
search money
Пользователь
 
Регистрация: 12.10.2009
Сообщений: 46
По умолчанию

Разобрался, сделал следующим образом( может кому-то пригодится):

Код:
<Window x:Class="WpfApplication1.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">
    <Grid>
        <Grid.Triggers>
            <EventTrigger SourceName="button1" RoutedEvent="Button.Click">
                <BeginStoryboard>
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="CollapsedGrid" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0:0:0">
                                <DiscreteObjectKeyFrame.Value>
                                    <Visibility>Hidden</Visibility>
                                </DiscreteObjectKeyFrame.Value>
                            </DiscreteObjectKeyFrame>
                        </ObjectAnimationUsingKeyFrames>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="button2" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0:0:0">
                                <DiscreteObjectKeyFrame.Value>
                                    <Visibility>Visible</Visibility>
                                </DiscreteObjectKeyFrame.Value>
                            </DiscreteObjectKeyFrame>
                        </ObjectAnimationUsingKeyFrames>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="button1" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0:0:0">
                                <DiscreteObjectKeyFrame.Value>
                                    <Visibility>Hidden</Visibility>
                                </DiscreteObjectKeyFrame.Value>
                            </DiscreteObjectKeyFrame>
                        </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
            <EventTrigger SourceName="button2" RoutedEvent="Button.Click">
                <BeginStoryboard>
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="CollapsedGrid" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0:0:0">
                                <DiscreteObjectKeyFrame.Value>
                                    <Visibility>Visible</Visibility>
                                </DiscreteObjectKeyFrame.Value>
                            </DiscreteObjectKeyFrame>
                        </ObjectAnimationUsingKeyFrames>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="button2" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0:0:0">
                                <DiscreteObjectKeyFrame.Value>
                                    <Visibility>Hidden</Visibility>
                                </DiscreteObjectKeyFrame.Value>
                            </DiscreteObjectKeyFrame>
                        </ObjectAnimationUsingKeyFrames>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="button1" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0:0:0">
                                <DiscreteObjectKeyFrame.Value>
                                    <Visibility>Visible</Visibility>
                                </DiscreteObjectKeyFrame.Value>
                            </DiscreteObjectKeyFrame>
                        </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Grid.Triggers>

        <Button Content="Свернуть" Height="23" HorizontalAlignment="Left" Margin="54,40,0,0" Name="button1" VerticalAlignment="Top" Width="75"/>
        <Button  Visibility="Hidden" Content="Подробности" Height="23" HorizontalAlignment="Left" Margin="54,40,0,0" Name="button2" VerticalAlignment="Top" Width="75" />
        <Grid x:Name="CollapsedGrid" Margin="40,97,69,37" Visibility="Visible">
            <Border Grid.ColumnSpan='2' BorderThickness='1' BorderBrush='#FFD4D4D4' Padding='10,5'>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width='Auto'/>
                        <ColumnDefinition Width='6'/>
                        <ColumnDefinition Width='*'/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height='Auto'/>
                        <RowDefinition Height='5'/>
                        <RowDefinition Height='Auto'/>
                        <RowDefinition Height='5'/>
                        <RowDefinition Height='Auto'/>
                        <RowDefinition Height='*'/>
                    </Grid.RowDefinitions>
                    <TextBlock Text='gfgfgfgfgfgfgf:'/>
                    <StackPanel  Orientation='Horizontal' Grid.Column='2'>
                        <TextBlock Text='100000000000000000.00' Margin='0,0,6,0'/>
                        <TextBlock Text='eur'/>
                    </StackPanel>
                    <TextBlock Text='tttttttttttttt:'  Grid.Row='2'/>
                    <StackPanel  Orientation='Horizontal'  Grid.Row='2' Grid.Column='2'  >
                        <TextBlock Text='0'   Margin='0,0,6,0'/>
                        <TextBlock Text='eur'/>
                    </StackPanel>
                    <TextBlock Text='rrrrrrrrrrrrrrrrr:'  Grid.Row='4'/>
                    <StackPanel  Orientation='Horizontal'  Grid.Row='4' Grid.Column='2' >
                        <TextBlock Text='10000000'   Margin='0,0,6,0'/>
                        <TextBlock Text='eur'/>
                    </StackPanel>
                </Grid>
            </Border>
        </Grid>
    </Grid>
</Window>
savra вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование Uses kettanaito Общие вопросы Delphi 24 03.06.2012 21:03
Использование If Macklay PHP 4 14.05.2012 20:03
Использование БД glazik БД в Delphi 13 22.02.2012 09:14
Использование (...) в с++ Byurrer Общие вопросы C/C++ 12 06.04.2011 23:04
Использование while и while do prikolist Общие вопросы C/C++ 20 06.04.2009 18:40