Silverlight reference XAML from code
In Silverlight5, how to reference a user control resource - emoticon from a button_click event?
I can access the object fine if I build it up in code behind then do the databinding that way, however using the XAML approach I get some nicer tooling. Example comes from Ch16
private void Button_Click_1(object sender, RoutedEventArgs e) { // **HERE how do I reference the XAML emoticon object //emoticon.Name = "Smiley face2"; //emoticon.Icon = new BitmapImage(new Uri("icons/happy.png", UriKind.RelativeOrAbsolute)); }
.
<UserControl x:Class="EmoticonExample.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" xmlns:local="clr-namespace:EmoticonExample" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <UserControl.Resources> <local:Emoticon x:Key="emoticon" Name="SmileyFace" Icon="icons/happy.png" /> </UserControl.Resources> <Grid x:Name="LayoutRoot" Margin="10" Background="White" DataContext="{StaticResource emoticon}"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <TextBlock Text="Name:" /> <TextBlock Text="Image:" Grid.Column="1" /> <TextBox Name="myTextBox" Text="{Binding Name, Mode=TwoWay}" Grid.Row="1" /> <Image Name="myImage" Source="{Binding Icon}" Stretch="None" Grid.Row="1" Grid.Column="1" /> <Button Content="Button" HorizontalAlignment="Left" Margin="10,116,0,-92" Grid.Row="1" VerticalAlignment="Top" Width="75" Click="Button_Click_1"/> </Grid> </UserControl>
Answers & Comments...
Answer: 1
Answer: 1
Name your user control
<UserControl x:Class="EmoticonExample.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" xmlns:local="clr-namespace:EmoticonExample" mc:Ignorable="d" x:Name="Example" d:DesignHeight="300" d:DesignWidth="400"> </UserControl
Then reference it in your code behind:
var emoticon = Example.Resources["emoticon"] as Emoticon; // Im not sure of your data type
by : tsiornhttp://stackoverflow.com/users/223155
No comments:
Post a Comment
Send us your comment related to the topic mentioned on the blog