wpf l01-layouts, controls, styles and templates

73
Mohammad Shaker mohammadshaker.com WPF Starter Course @ZGTRShaker 2011, 2012, 2013, 2014 WPF Showcase L01 – Layouts, Controls, Styles and Templates

Upload: mohammad-shaker

Post on 14-May-2015

652 views

Category:

Software


6 download

TRANSCRIPT

Page 1: WPF L01-Layouts, Controls, Styles and Templates

Mohammad Shakermohammadshaker.com

WPF Starter Course@ZGTRShaker

2011, 2012, 2013, 2014

WPF ShowcaseL01 – Layouts, Controls, Styles and Templates

Page 2: WPF L01-Layouts, Controls, Styles and Templates

WPF

Page 3: WPF L01-Layouts, Controls, Styles and Templates

WPFWindows Presentation Foundation

Page 4: WPF L01-Layouts, Controls, Styles and Templates

WPF with Expression Blend

Page 5: WPF L01-Layouts, Controls, Styles and Templates

WPF References

Page 6: WPF L01-Layouts, Controls, Styles and Templates

WPFAutomataProject,with VB.NET

Page 7: WPF L01-Layouts, Controls, Styles and Templates

My 3rd Year Projects with.NET!

WPFRFID Systemwith C#

Page 8: WPF L01-Layouts, Controls, Styles and Templates

Rich Content

Page 9: WPF L01-Layouts, Controls, Styles and Templates

Stand Alone Apps

Page 10: WPF L01-Layouts, Controls, Styles and Templates

Browser-Hosted Apps

Page 11: WPF L01-Layouts, Controls, Styles and Templates

WPF Overview

Page 12: WPF L01-Layouts, Controls, Styles and Templates

A lot of these WPF slides are ported fromhttp://www.blackwasp.co.uk/

Page 13: WPF L01-Layouts, Controls, Styles and Templates

WPF Overview

Page 14: WPF L01-Layouts, Controls, Styles and Templates

WPF Overview

Page 15: WPF L01-Layouts, Controls, Styles and Templates

WPF Overview

Page 16: WPF L01-Layouts, Controls, Styles and Templates

WPF Overview

Page 17: WPF L01-Layouts, Controls, Styles and Templates

WPF Overview

Page 18: WPF L01-Layouts, Controls, Styles and Templates

Layouts

Page 19: WPF L01-Layouts, Controls, Styles and Templates

Grid

<Window x:Class="GridDemo.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="Grid Demo"Height="200"Width="250">

<Grid><Button Content="Click Me!"/>

</Grid></Window>

<Grid><Grid.ColumnDefinitions>

<ColumnDefinition/><ColumnDefinition/>

</Grid.ColumnDefinitions><Grid.RowDefinitions>

<RowDefinition/><RowDefinition/><RowDefinition/>

</Grid.RowDefinitions><Button Content="Click Me!"/>

</Grid>

Page 20: WPF L01-Layouts, Controls, Styles and Templates

UniformGrid

<Window x:Class="UniformGridDemo.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="UniformGrid Demo"Height="200"Width="250">

<UniformGrid><Button Content="Button 1"/><Button Content="Button 2"/><Button Content="Button 3"/><Button Content="Button 4"/>

</UniformGrid></Window>

Page 21: WPF L01-Layouts, Controls, Styles and Templates

DockPanel

Page 22: WPF L01-Layouts, Controls, Styles and Templates

WrapPanel<Window x:Class="WrapPanelDemo.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="WrapPanel Demo"

Height="200"

Width="250">

<WrapPanel Margin="10" Background="Lavender">

<Button Content="Button 1" Width="100" Height="25" Margin="3"/>

<Button Content="Button 2" Width="100" Height="25" Margin="3"/>

<Button Content="Button 3" Width="100" Height="25" Margin="3"/>

<Button Content="Button 4" Width="100" Height="25" Margin="3"/>

</WrapPanel>

</Window>

Resized

Original Size

Page 23: WPF L01-Layouts, Controls, Styles and Templates

StackPanel

<Window x:Class="StackPanelDemo.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="StackPanel Demo"

Height="200"

Width="250">

<StackPanel Background="Orange">

<Label Content="First Name" />

<TextBox x:Name="FirstName"/>

<Label Content="Last Name"/>

<TextBox x:Name="LastName"/>

<Button Content="OK"/>

<Button Content="Cancel"/>

</StackPanel>

</Window>

<StackPanel Background="Orange">

<Label Content="First Name" />

<TextBox x:Name="FirstName"/>

<Label Content="Last Name"/>

<TextBox x:Name="LastName"/>

<StackPanel Orientation="Horizontal" Background="Yellow">

<Button Content="OK"/>

<Button Content="Cancel"/>

</StackPanel>

</StackPanel>

Page 24: WPF L01-Layouts, Controls, Styles and Templates

StackPanel

Page 25: WPF L01-Layouts, Controls, Styles and Templates

ViewBox – Change Elements Sizes When Resized

<Viewbox>

<DockPanel Width="250" Height="200">

<StackPanel Orientation="Horizontal" DockPanel.Dock="Top" Background="LightBlue">

<Button Content="01" Margin="1"/>

<Button Content="02" Margin="1"/>

<Button Content="03" Margin="1 1 10 1"/>

<Button Content="04" Margin="1"/>

<Button Content="05" Margin="1"/>

<Button Content="06" Margin="1"/>

</StackPanel>

<StackPanel Orientation="Horizontal"

DockPanel.Dock="Bottom"

Background="Lightblue"

Height="25">

<TextBlock VerticalAlignment="Center">Processing</TextBlock>

<ProgressBar Value="75" Width="100" Margin="4"/>

</StackPanel>

<Grid>

<TextBlock>Content area</TextBlock>

</Grid>

</DockPanel>

</Viewbox>

Resized

Original Size

Page 26: WPF L01-Layouts, Controls, Styles and Templates

Border

Page 27: WPF L01-Layouts, Controls, Styles and Templates

Border

• <Border Margin="5" Padding="5" Background="LightYellow"

• BorderBrush="SteelBlue" BorderThickness="3,5,3,5" CornerRadius="3"

• VerticalAlignment="Top">

– <StackPanel>

• <Button Margin="3">One</Button>

• <Button Margin="3">Two</Button>

• <Button Margin="3">Three</Button>

– </StackPanel>

• </Border>

Page 28: WPF L01-Layouts, Controls, Styles and Templates

Controls

Page 29: WPF L01-Layouts, Controls, Styles and Templates

TextBox and Label<Window x:Class="TextBoxDemo.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="TextBox Demo"

Height="200"

Width="250">

<Grid>

<Grid.RowDefinitions>

<RowDefinition/>

<RowDefinition/>

<RowDefinition/>

<RowDefinition/>

</Grid.RowDefinitions>

<Label Content="Enter some text" Margin="5"/>

<TextBox Grid.Row="1" Name="MyTextBox" Margin="5"/>

<Button Grid.Row="2" Content="OK" Margin="5"/>

<Label Grid.Row="3" Name="MyLabel" Margin="5"/>

</Grid>

</Window>

private void Button_Click(object sender, RoutedEventArgs e)

{

MyLabel.Content = MyTextBox.Text;

}

Page 30: WPF L01-Layouts, Controls, Styles and Templates

TextBox and Label<Window x:Class="LabelDemo.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="Label Demo"

Width="250"

Height="150">

<Grid>

<Grid.ColumnDefinitions>

<ColumnDefinition Width="Auto"/>

<ColumnDefinition/>

</Grid.ColumnDefinitions>

<Grid.RowDefinitions>

<RowDefinition Height="Auto"/>

<RowDefinition Height="Auto"/>

<RowDefinition/>

</Grid.RowDefinitions>

<Label Content="First Name" Margin="4"/>

<TextBox Grid.Column="1" x:Name="FirstName" Margin="4"/>

<Label Grid.Row="1" Content="Last Name" Margin="4"/>

<TextBox Grid.Row="1" Grid.Column="1" x:Name="LastName" Margin="4"/>

<StackPanel Grid.Row="2" Grid.ColumnSpan="2"

Orientation="Horizontal"

HorizontalAlignment="Right" VerticalAlignment="Bottom">

<Button Content="OK" Width="60" Margin="4"/>

<Button Content="Cancel" Width="60" Margin="4"/>

</StackPanel>

</Grid>

</Window>

Page 31: WPF L01-Layouts, Controls, Styles and Templates

RichTextBoxcontrol has a similar appearance to a standard TextBox. However, where TextBoxes only permit you to edit plain

text, RichTextBoxes allow you to create complex documents with font and paragraph formatting, page layout options and inserted elements, such as images.

Page 32: WPF L01-Layouts, Controls, Styles and Templates

ListBox<Window x:Class="ListBoxDemo.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="ListBox Demo"

Height="200"

Width="200">

<Grid>

<Grid.RowDefinitions>

<RowDefinition />

<RowDefinition Height="25"/>

</Grid.RowDefinitions>

<ListBox Name="MyList">

<ListBoxItem>Red</ListBoxItem>

<ListBoxItem>Orange</ListBoxItem>

<ListBoxItem>Yellow</ListBoxItem>

<ListBoxItem>Green</ListBoxItem>

<ListBoxItem>Blue</ListBoxItem>

<ListBoxItem>Indigo</ListBoxItem>

<ListBoxItem>Violet</ListBoxItem>

</ListBox>

<Button Grid.Row="1">OK</Button>

</Grid>

</Window>

private void Button_Click(object sender, RoutedEventArgs e)

{

var selected = (ListBoxItem)MyList.SelectedItem;

string value = selected == null ? "No selection" : selected.Content.ToString();

MessageBox.Show(value);

}

Page 33: WPF L01-Layouts, Controls, Styles and Templates

ComboBox<Window x:Class="ComboBoxDemo.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="ComboBox Demo"

Height="110"

Width="200">

<StackPanel>

<ComboBox Name="ProcessorBox">

<ComboBoxItem>Intel</ComboBoxItem>

<ComboBoxItem>AMD</ComboBoxItem>

<ComboBoxItem>Other</ComboBoxItem>

</ComboBox>

<ComboBox Name="RamBox">

<ComboBoxItem>16GB</ComboBoxItem>

<ComboBoxItem>32GB</ComboBoxItem>

<ComboBoxItem>64GB</ComboBoxItem>

</ComboBox>

<Button Height="25">OK</Button>

</StackPanel>

</Window>

private void Button_Click(object sender, RoutedEventArgs e)

{

var processorItem = (ComboBoxItem)ProcessorBox.SelectedItem;

var ramItem = (ComboBoxItem)RamBox.SelectedItem;

var processor = processorItem == null ? "No processor" : processorItem.Content;

var ram = ramItem == null ? "No RAM" : ramItem.Content;

MessageBox.Show(string.Format("{0} {1}", processor, ram));

}

Page 34: WPF L01-Layouts, Controls, Styles and Templates

RadioButton Groups

• To group a set of RadioButton controls, you set the GroupName property to

a string value. All of the radio buttons with the same group name are linked but

are not connected to controls in other groups.

<RadioButton Grid.Row="0" GroupName="Handed">Left Handed</RadioButton>

<RadioButton Grid.Row="1" GroupName="Handed" IsChecked="True">Right Handed</RadioButton>

<RadioButton Grid.Row="2" GroupName="Speed" IsChecked="True">Fast Double-Click</RadioButton>

<RadioButton Grid.Row="3" GroupName="Speed">Slow Double-Click</RadioButton>

Page 35: WPF L01-Layouts, Controls, Styles and Templates

CheckBox

<Window x:Class="CheckBoxDemo.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="CheckBox Demo"

Height="100"

Width="300">

<StackPanel>

<CheckBox Margin="5">Please send me emails about your products</CheckBox>

<CheckBox Margin="5">Please sell my details to third parties</CheckBox>

</StackPanel>

</Window>

private void CheckBox_Checked(object sender, RoutedEventArgs e)

{

((CheckBox)sender).Foreground = Brushes.Green;

}

private void CheckBox_Unchecked(object sender, RoutedEventArgs e)

{

((CheckBox)sender).Foreground = Brushes.Red;

}

private void CheckBox_Indeterminate(object sender, RoutedEventArgs e)

{

((CheckBox)sender).Foreground = Brushes.Black;

}

Page 36: WPF L01-Layouts, Controls, Styles and Templates

GroupBox<Window x:Class="GroupBoxDemo.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="GroupBox Demo"

Width="250"

Height="180">

<Grid>

<Grid.RowDefinitions>

<RowDefinition Height="Auto"/>

<RowDefinition Height="Auto"/>

</Grid.RowDefinitions>

<GroupBox Header="Mouse Handedness">

<StackPanel>

<RadioButton Content="Left-Handed" Margin="5"/>

<RadioButton Content="Right-Handed" Margin="5" IsChecked="True"/>

</StackPanel>

</GroupBox>

<GroupBox Grid.Row="1" Header="Double Click Speed">

<Slider Margin="5" />

</GroupBox>

</Grid>

</Window>

Page 37: WPF L01-Layouts, Controls, Styles and Templates

Menu

<Window x:Class="MenuItemDemo.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="Not Notepad"

Height="250"

Width="350">

<DockPanel>

<Menu DockPanel.Dock="Top">

<MenuItem Header="File">

<MenuItem Header="New"/>

<MenuItem Header="Open..."/>

<MenuItem Header="Save"/>

<MenuItem Header="Save As"/>

<Separator />

<MenuItem Header="Page Setup..."/>

<MenuItem Header="Print..."/>

<Separator />

<MenuItem Header="Exit"/>

</MenuItem>

….

Page 38: WPF L01-Layouts, Controls, Styles and Templates

TabControl<TabItem Header="Employee">

<Grid>

<Grid.ColumnDefinitions>

<ColumnDefinition Width="Auto"/>

<ColumnDefinition/>

</Grid.ColumnDefinitions>

<Grid.RowDefinitions>

<RowDefinition Height="Auto"/>

<RowDefinition Height="Auto"/>

</Grid.RowDefinitions>

<Label Margin="5">First Name</Label>

<TextBox Grid.Column="1" Margin="5"/>

<Label Grid.Row="1" Margin="5">Last Name</Label>

<TextBox Grid.Row="1" Grid.Column="1" Margin="5"/>

</Grid>

</TabItem>

<TabItem Header="Salary">

<Grid>

<Grid.ColumnDefinitions>

<ColumnDefinition Width="Auto"/>

<ColumnDefinition/>

</Grid.ColumnDefinitions>

<Grid.RowDefinitions>

<RowDefinition Height="Auto"/>

<RowDefinition Height="Auto"/>

</Grid.RowDefinitions>

<Label Margin="5">Schedule</Label>

<ComboBox Grid.Column="1" Margin="5">

<ComboBox.Items>

<ComboBoxItem>Annually</ComboBoxItem>

<ComboBoxItem>Monthly</ComboBoxItem>

</ComboBox.Items>

</ComboBox>

<Label Grid.Row="1" Margin="5">Amount</Label>

<TextBox Grid.Row="1" Grid.Column="1" Margin="5"/>

</Grid>

</TabItem>

Page 39: WPF L01-Layouts, Controls, Styles and Templates

ToolBar

<Window x:Class="ToolBarDemo.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="ToolBar Demo"

Height="200"

Width="450">

<DockPanel Background="Gray">

<ToolBar DockPanel.Dock="Top" Height="28">

<Button><Image Source="/Icons/New.png"/></Button>

<Button><Image Source="/Icons/Open.png"/></Button>

<Button><Image Source="/Icons/Save.png"/></Button>

<Button><Image Source="/Icons/Print.png"/></Button>

<Button><Image Source="/Icons/Email.png"/></Button>

<Button><Image Source="/Icons/Cut.png"/></Button>

<Button><Image Source="/Icons/Copy.png"/></Button>

<Button><Image Source="/Icons/Paste.png"/></Button>

<ToggleButton Width="20" FontWeight="Bold">B</ToggleButton>

<ToggleButton Width="20" FontStyle="Italic">I</ToggleButton>

<Button><Image Source="/Icons/Left.png"/></Button>

<Button><Image Source="/Icons/Centre.png"/></Button>

<Button><Image Source="/Icons/Right.png"/></Button>

<Button><Image Source="/Icons/FullScreen.png"/></Button>

<Button><Image Source="/Icons/Help.png"/></Button>

</ToolBar>

<TextBox TextWrapping="Wrap"/>

</DockPanel>

</Window>|

Page 40: WPF L01-Layouts, Controls, Styles and Templates

ScrollViewer<ScrollViewer>

<Grid Margin="3,3,10,3">

<Grid.RowDefinitions>

...

</Grid.RowDefinitions>

<Grid.ColumnDefinitions>

...

</Grid.ColumnDefinitions>

<Label Grid.Row="0" Grid.Column="0" Margin="3"

VerticalAlignment="Center">Home:</Label>

<TextBox Grid.Row="0" Grid.Column="1" Margin="3"

Height="Auto" VerticalAlignment="Center"></TextBox>

<Button Grid.Row="0" Grid.Column="2" Margin="3" Padding="2">

Browse</Button>

...

</Grid>

</ScrollViewer>

Page 41: WPF L01-Layouts, Controls, Styles and Templates

Expander

Page 42: WPF L01-Layouts, Controls, Styles and Templates

StatusBar<Window x:Class="StatusBarDemo.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="StatusBar Demo"

Width="250"

Height="200">

<DockPanel>

<StatusBar DockPanel.Dock="Bottom">

Loading...

</StatusBar>

<Label>StatusBar Example</Label>

</DockPanel>

</Window>

<StatusBar DockPanel.Dock="Bottom">

<TextBlock>Loading...</TextBlock>

<ProgressBar Width="100" Height="15" Value="67" />

</StatusBar>

Page 43: WPF L01-Layouts, Controls, Styles and Templates

Popup<Window x:Class="PopupDemo.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="ToolTip Demo"

Height="200"

Width="250">

<Grid Margin="10">

<Button Width="100" Height="25" Click="Show_Click">Show Popup</Button>

<Popup Name="MyPopup" Placement="Mouse">

<StackPanel Background="PaleGreen">

<Label HorizontalAlignment="Center">Click to hide</Label>

<Button Click="Hide_Click" Margin="10">Hide</Button>

</StackPanel>

</Popup>

</Grid>

</Window>

private void Show_Click(object sender, RoutedEventArgs e)

{

MyPopup.IsOpen = true;

}

private void Hide_Click(object sender, RoutedEventArgs e)

{

MyPopup.IsOpen = false;

}

Page 44: WPF L01-Layouts, Controls, Styles and Templates

ProgressBar< Button Width="25" Height="25">-</ Button >

< Button Width="25" Height="25" Grid.Column="1">+</ Button >

<Button Width="25" Height="25" Grid.Column="2">?</Button>

<ProgressBar Name="Progress"

Grid.Row="1"

Grid.ColumnSpan="3"

Height="25"/>

<Label Name="ProgressText"

Content="0"

HorizontalAlignment="Center"

Grid.Row="1"

Grid.Column="1"/>

private void Decrement_Click(object sender, RoutedEventArgs e)

{

if (Progress.Value > 0)

{

Progress.Value--;

}

SetProgressText();

}

private void Increment_Click(object sender, RoutedEventArgs e)

{

if (Progress.Value < 100)

{

Progress.Value++;

}

SetProgressText();

}

private void SetProgressText()

{

ProgressText.Content = Progress.Value;

}

Page 45: WPF L01-Layouts, Controls, Styles and Templates

Tooltip

Page 46: WPF L01-Layouts, Controls, Styles and Templates

Spell Checking!

Page 47: WPF L01-Layouts, Controls, Styles and Templates

Other Controls

• ToolBarTray

• Slider

• DatePicker

• Annotations

Page 48: WPF L01-Layouts, Controls, Styles and Templates

Dialogs

Page 49: WPF L01-Layouts, Controls, Styles and Templates

SaveFileDialogprivate void SaveButton_Click(object sender, EventArgs e)

{

using (SaveFileDialog sfd = new SaveFileDialog())

{

if (sfd.ShowDialog() == DialogResult.OK)

{

SaveFile(sfd);

}

}

}

private void SaveFile(SaveFileDialog sfd)

{

string path = sfd.FileName;

File.WriteAllText(path, TextInput.Text);

}

Page 50: WPF L01-Layouts, Controls, Styles and Templates

OpenFileDialog

private void OpenButton_Click(object sender, EventArgs e)

{

using (OpenFileDialog ofd = new OpenFileDialog())

{

if (ofd.ShowDialog() == DialogResult.OK)

{

ShowFileDetails(ofd);

}

}

}

private void ShowFileDetails(OpenFileDialog ofd)

{

FileList.Items.Clear();

FileList.Items.Add(ofd.FileName);

}

private void SaveButton_Click(object sender, EventArgs e)

{

using (SaveFileDialog sfd = new SaveFileDialog())

{

if (sfd.ShowDialog() == DialogResult.OK)

{

SaveFile(sfd);

}

}

}

private void SaveFile(SaveFileDialog sfd)

{

string path = sfd.FileName;

File.WriteAllText(path, TextInput.Text);

}

SaveFileDialog OpenFileDialog

Page 51: WPF L01-Layouts, Controls, Styles and Templates

Media

Page 52: WPF L01-Layouts, Controls, Styles and Templates

Media

Page 53: WPF L01-Layouts, Controls, Styles and Templates

Media

Page 54: WPF L01-Layouts, Controls, Styles and Templates

Media

Page 55: WPF L01-Layouts, Controls, Styles and Templates

Resources

Page 56: WPF L01-Layouts, Controls, Styles and Templates

Resources

• Reusable!

Page 57: WPF L01-Layouts, Controls, Styles and Templates

GPU-Accelerated Custom Effects for WPF

Page 58: WPF L01-Layouts, Controls, Styles and Templates

GPU-Accelerated Custom Effects for WPF

Motion Blur

Page 59: WPF L01-Layouts, Controls, Styles and Templates

GPU-Accelerated Custom Effects for WPF

Page 60: WPF L01-Layouts, Controls, Styles and Templates

Using Custom Effect

Page 61: WPF L01-Layouts, Controls, Styles and Templates

Styles

Page 62: WPF L01-Layouts, Controls, Styles and Templates

Styles

Page 63: WPF L01-Layouts, Controls, Styles and Templates

Styles

Page 64: WPF L01-Layouts, Controls, Styles and Templates

WPF Control Templates, Heaven!

Page 65: WPF L01-Layouts, Controls, Styles and Templates

Control Templates

Page 66: WPF L01-Layouts, Controls, Styles and Templates

Control Templates

Page 67: WPF L01-Layouts, Controls, Styles and Templates

Data Template

Page 68: WPF L01-Layouts, Controls, Styles and Templates

Data Template

• Without a Data Template

Page 69: WPF L01-Layouts, Controls, Styles and Templates

Data Template

• Resources

Page 70: WPF L01-Layouts, Controls, Styles and Templates

Data Template

Page 71: WPF L01-Layouts, Controls, Styles and Templates

Data Template

Page 72: WPF L01-Layouts, Controls, Styles and Templates

Yet, More to come!

Animation

Page 73: WPF L01-Layouts, Controls, Styles and Templates

http://www.mohammadshaker.com

[email protected]

https://twitter.com/ZGTRShaker @ZGTRShaker

https://de.linkedin.com/pub/mohammad-shaker/30/122/128/

http://www.slideshare.net/ZGTRZGTR

https://www.goodreads.com/user/show/11193121-mohammad-shaker

https://plus.google.com/u/0/+MohammadShaker/

https://www.youtube.com/channel/UCvJUfadMoEaZNWdagdMyCRA

http://mohammadshakergtr.wordpress.com/