Search This Blog

Monday, May 23, 2016

DataGridRow change color of selected row

WPF > DataGrid Color of selected row


  <DataGrid.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#FFB8AEAE"/>
  </DataGrid.Resources>


Last column width in WPF datagrid to take all the left space

WPF > DataGrid > Last column width


XAML

<DataGridTemplateColumn Header="Range" Width="100'*">

Or Code behind:

 // make the last column in WPF data grid take all the left space, always

dataGrid.Columns[dataGrid.Columns.Count - 1].Width = new DataGridLength(1, DataGridLengthUnitType.Star);


Friday, May 20, 2016

WPF datagrid edit cell on single click

WPF > DataGrid > Edit cell on single click

<Window.Resources>
        <Style TargetType="{x:Type DataGridCell}">
            <EventSetter Event="PreviewMouseLeftButtonDown"    Handler="DataGridCell_PreviewMouseLeftButtonDown" />
        </Style>
    </Window.Resources>

private void DataGridCell_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    DataGridCell cell = sender as DataGridCell;
    EditCell(cell, e);
}

private void EditCell(DataGridCell cell, RoutedEventArgs e)
{
    if (cell == null || cell.IsEditing || cell.IsReadOnly)
       return;

    if (!cell.IsFocused)
    {
                cell.Focus();
    }
    DGrid.BeginEdit(e);
    cell.Dispatcher.Invoke(
           DispatcherPriority.Background,
           new Action(delegate { })
    );

}

Friday, April 8, 2016

PasswordBox WPF Example

WPF > Controls  > PasswordBox 

Represents a control designed for entering and handling passwords.

Example



<Window x:Class="WpfApplication3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="221" Width="372">
    <Grid Margin="0,0,101,23">
        <PasswordBox x:Name="txtPwd" HorizontalAlignment="Left" Margin="110,75,0,0" VerticalAlignment="Top" Width="120" />
        <TextBlock HorizontalAlignment="Left" Margin="55,47,0,0" TextWrapping="Wrap" Text="User" VerticalAlignment="Top"/>
        <TextBox HorizontalAlignment="Left" Height="23" Margin="110,47,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="120"/>
        <TextBlock HorizontalAlignment="Left" Margin="55,75,0,0" TextWrapping="Wrap" Text="Password" VerticalAlignment="Top" RenderTransformOrigin="0.75,2.312"/>
        <Button Content="Login" HorizontalAlignment="Left" Margin="155,116,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
    </Grid>
</Window>

private void Button_Click(object sender, RoutedEventArgs e)
{
   if (txtPwd.Password == "pwd")
     MessageBox.Show("Login Ok");

}

Wednesday, March 2, 2016

Binding image in DataGrid WPF example

XAML

<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" Loaded="Window_Loaded">
    <Grid>
        <DataGrid x:Name="dataGrid1" AutoGenerateColumns="False" SelectionChanged="dataGrid1_SelectionChanged">
            <DataGrid.Columns>
                <DataGridTemplateColumn>
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding PictureName}" />
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                <DataGridTemplateColumn>
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Image Source="{Binding PictureFilePath}" />
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>

</Window>



C#

using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;

namespace WpfApplication1
{
    public class PictureObject
    {
        public string PictureName { get; set; }
        public Uri PictureFilePath { get; set; }
    }
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {

        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            List<PictureObject> list = new List<PictureObject>();
            list.Add(new PictureObject() { PictureFilePath = new Uri("file:///c:\\Windows\\System32\\PerfCenterCpl.ico"), PictureName="Picture1" });
            dataGrid1.ItemsSource = list;
        }
    }
}

Friday, February 26, 2016

StatusBarItem Example WPF

WPF > Controls  > ContentControl > StatusBarItem

StatusBarItem objects are used to define items in a StatusBar control.





<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>
        <StatusBar Name="sbar"
           VerticalAlignment="Bottom" >
            <StatusBar.Background>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="Black" Offset="0"/>
                    <GradientStop Color="#FFAE1B1B" Offset="1"/>
                </LinearGradientBrush>
            </StatusBar.Background>
            <StatusBarItem>
                <TextBlock Foreground="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}">Processsing</TextBlock>
            </StatusBarItem>
            <StatusBarItem>
                <ProgressBar Width="100" Height="20"
                 Name="progressBar1">
                    <ProgressBar.Triggers>
                        <EventTrigger RoutedEvent="ProgressBar.Loaded">
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation
                Storyboard.TargetName="progressBar1"
                Storyboard.TargetProperty="Value"
                From="0" To="100" Duration="0:0:5"  />
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                    </ProgressBar.Triggers>
                </ProgressBar>
            </StatusBarItem>
            <Separator/>
            <StatusBarItem>
                <TextBlock Foreground="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}">Percent</TextBlock>
            </StatusBarItem>
        </StatusBar>
    </Grid>

</Window>