Dynamically Loading XAML from Managed Code : XAML « Data « Silverlight






Dynamically Loading XAML from Managed Code

Dynamically Loading XAML from Managed Code
   

<UserControl x:Class='SilverlightApplication3.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" Background="White">
    <Grid.RowDefinitions>
      <RowDefinition Height="0.483*"/>
      <RowDefinition Height="0.517*"/>
    </Grid.RowDefinitions>
    <StackPanel Grid.RowSpan="2">
      <TextBlock x:Name="TextBlock1" Margin="4">TextBlock1</TextBlock>
      <TextBlock x:Name="TextBlock2" Margin="4">TextBlock2</TextBlock>
      <TextBlock x:Name="TextBlock3" Margin="4">TextBlock3</TextBlock>
      <TextBlock x:Name="TextBlock4" Margin="4">TextBlock4</TextBlock>
      <Rectangle Fill="Navy" Height="10" Margin="2"></Rectangle>
    </StackPanel>
    <StackPanel Grid.Row="1" Margin="2">
      <TextBlock Margin="2" TextWrapping="Wrap">Type the Name of a TextBlock from the above list.</TextBlock>
      <TextBox x:Name="ControlName" Height="24" KeyDown="ControlName_KeyDown" Margin="2" Grid.Row="1" TextWrapping="Wrap"/>
      <Button Content="Click To Find the Name Entered." Margin="2" Click="Button_Click"></Button>
    </StackPanel>
  </Grid>
</UserControl>

//File: Page.xaml.cs

using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;

namespace SilverlightApplication3
{
  public partial class MainPage : UserControl
  {
    public MainPage()
    {
      InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
      TextBlock tb = (TextBlock)LayoutRoot.FindName(ControlName.Text);
      if (tb != null)
        tb.FontSize = 20.0;
      else {
        ControlName.Foreground = new SolidColorBrush(Color.FromArgb(255, 200, 124, 124));
        ControlName.Text = "Control not found! Please try again.";
      }
    }

    private void ControlName_KeyDown(object sender, KeyEventArgs e)
    {
      ControlName.Foreground = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));
    }
  }
}

   
    
    
  








Related examples in the same category

1.Understanding the Structure of a SilverlightUnderstanding the Structure of a Silverlight
2.Using XAML BrushesUsing XAML Brushes
3.Xaml and Code behind
4.A Minimal XAML Document
5.Inner element with xml namespaceInner element with xml namespace
6.Specify a brush with the expanded XAML syntaxSpecify a brush with the expanded XAML syntax
7.A basic XAML file referencing two namespacesA basic XAML file referencing two namespaces
8.The XAML for a basic EllipseThe XAML for a basic Ellipse
9.The XAML for animating a double-precision floating-point number
10.XAML for animating pair of x-and-y coordinatesXAML for animating pair of x-and-y coordinates
11.XAML for shifting between colorsXAML for shifting between colors
12.Loading some XAML at runtimeLoading some XAML at runtime
13.Loading XAML with nested elements at runtimeLoading XAML with nested elements at runtime
14.The XAML for the progress bar. The figure shown is simply for illustration.The XAML for the progress bar. The figure shown is simply for illustration.
15.Load Dynamic XAMLLoad Dynamic XAML