Pro Silverlight 3 in C# - XAML

3.1. XAML Basics

 <UserControl x:Class="SilverlightApplication1.MainPage"
 xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation
 xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml
 xmlns:d=http://schemas.microsoft.com/expression/blend/2008
 xmlns:mc=http://schemas.openxmlformats.org/markup-compatibility/2006
 mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
 <Grid x:Name="LayoutRoot">
 </Grid>
 </UserControl>
2. XAML Namespaces
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
3. Design Namespaces
  mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
4.Custom Namespaces
  xmlns:w="clr-namespace:Widgets"
  <w:HotButton Text="Click Me!" Click="DoSomething"></w:HotButton>
5. Properties and Events in XAML
  
<Grid x:Name="grid1">
<Grid.Background>
<LinearGradientBrush>
<LinearGradientBrush.GradientStops>
<GradientStop Offset="0.00" Color="Yellow" />
<GradientStop Offset="0.50" Color="White" />
<GradientStop Offset="1.00" Color="Purple" />
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Grid.Background>
...
</Grid>

-----------------------------------------------------------------------

LinearGradientBrush brush = new LinearGradientBrush();
GradientStop gradientStop1 = new GradientStop();
gradientStop1.Offset = 0;
gradientStop1.Color = Colors.Yellow;
brush.GradientStops.Add(gradientStop1);
GradientStop gradientStop2 = new GradientStop();
gradientStop2.Offset = 0.5;
gradientStop2.Color = Colors.White;
brush.GradientStops.Add(gradientStop2);
GradientStop gradientStop3 = new GradientStop();
gradientStop3.Offset = 1;
gradientStop3.Color = Colors.Purple;
brush.GradientStops.Add(gradientStop3);
grid1.Background = brush;
 
6. Nesting Elements
<Grid x:Name="grid1">
...
<TextBox x:Name="txtQuestion" ... >
</TextBox>
<Button x:Name="cmdAnswer" ... >
</Button>
<TextBox x:Name="txtAnswer" ... >
</TextBox>
</Grid>

-----------------------------------------------

txtQuestion = new TextBox();
...
grid1.Children.Add(txtQuestion);
cmdAnswer = new Button();
...
grid1.Children.Add(cmdAnswer);
txtAnswer = new TextBox();
...
grid1.Children.Add(txtAnswer);

------------------------------------------------------

private void Clear(DependencyObject element)
{
// If this is a text box, clear the text.
TextBox txt = element as TextBox;
if (txt != null) txt.Text = "";
// Check for nested children.
int children = VisualTreeHelper.GetChildrenCount(element);
for (int i = 0; i < children; i++)
{
DependencyObject child = VisualTreeHelper.GetChild(element, i);
Clear(child);
}
}