pk_code
pk_code

Reputation: 2766

Change Grid Panel Border color Using C# programatically- WPF

I have Grid Panel and I want to its border color to change when we click on button

<Grid Grid.Row="3"  Name="LocationLayoutPanel" VerticalAlignment="Top"  
 Margin="0,51,0,0" Height="65" ShowGridLines="True">

        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"   />
            <ColumnDefinition Width="9*" />
            <ColumnDefinition Width="2*" />
        </Grid.ColumnDefinitions >

 <Border BorderThickness="2,2,2,2" BorderBrush="Red" Grid.ColumnSpan="3"  
   Grid.RowSpan="2"/>

    <Button Content="change border color" Grid.Row="1" Grid.Column="1" 
    Click="chnageBGCOLOR"></Button>
</Grid>

When I click on "change border color" button its grid border color should be changed!

Thank you!

Upvotes: 1

Views: 1702

Answers (1)

Maximus
Maximus

Reputation: 3448

XAML:

      <Border BorderThickness="2,2,2,2" Grid.ColumnSpan="3"  
   Grid.RowSpan="2">
            <Border.Style>
                <Style TargetType="Border">
                    <Setter Property="BorderBrush" Value="Red"/>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=Button, Path=IsPressed}" Value="True">
                            <DataTrigger.EnterActions>
                                <BeginStoryboard>
                                    <Storyboard>
                                        <ColorAnimation Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)"
                                                        To="GreenYellow"/>
                                    </Storyboard>
                                </BeginStoryboard>
                            </DataTrigger.EnterActions>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Border.Style>
        </Border>
        <Button Name="Button" Content="change boarder color" Grid.Row="1" Grid.Column="1"></Button>

Programically:

Add Name to Border and set as follows:

BorderName.BorderBrush = new SolidColorBrush(Colors.GreenYellow);

Upvotes: 2

Related Questions