Mega Code Archive

 
Categories / Silverlight / Data
 

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));     }   } }