今天无聊,在网上瞎逛,突然看到一些关于silverlight的内容。嘿嘿,正好趁自己有空也写个小程序玩玩。
功能就是点击用户名,利用WebClient异步获取服务器上用户的信息(图片和介绍) 界面运行效果如下。
开始本来是用silverlight Beta1完成的,后来越做越发现很多功能和属性用着麻烦也不太好
用了,最后干脆就改成了Beta2了,毕竟是最新版,果然用着舒服些啊。 整个功能完成
的比较顺利,当中也遇到了几个稍微麻烦点
的问
题。比如在Silverlight项目中图片路径赋值的问题。设置图片Source路径必须是ImageSource,我的是
"jay.jpg"路径怎么转?在Api里翻了半天,也没发现。最后到网上查了下,
网上搜了半天没个结果,最后瞎折腾了半
天用获取网络资源的方式,竟然成功了。方式:
new BitmapImage(new Uri(System.Windows.Browser.HtmlPage.Document.DocumentUri, "Images/a.jpg");
不过,这个方式不好的地方就是不能把图片放入Silverlight项目中打包,只能把图片转移到Web Application
里去了。
下面是Silverlight项目xaml部分源码了。
<UserControl x:Class="SilverlightTravel.NetWebClient"
xmlns:x="
http://schemas.microsoft.com/winfx/2006/xaml
"
Width="600" Height="300" Loaded="UserControl_Loaded">
<Grid x:Name="LayoutRoot" Background="WhiteSmoke" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="30"></RowDefinition>
<RowDefinition Height="150"></RowDefinition>
<RowDefinition Height="200"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="请选择人物查看介绍" Grid.Column="0" Grid.Row="0"></TextBlock>
<ListBox Grid.Column="0" x:Name="lstMusicer" Grid.Row="1" Width="200" HorizontalAlignment="Left" SelectionChanged="lstMusicer_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding UserName}" Height="35"></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Image x:Name="imgPerson" HorizontalAlignment="Left" Grid.Row="1" Grid.Column="1"></Image>
<MediaElement x:Name="mePlayer" HorizontalAlignment="Left" Source="video/" Grid.Row="2" Grid.Column="2" Height="50" Width="50"></MediaElement>
<TextBlock x:Name="txtIntroduce" Grid.Row="2" Grid.Column="1" Margin="30 50 " Grid.ColumnSpan="2"></TextBlock>
<Button Height="50" VerticalAlignment="Top" Margin="10 " Width="120" Grid.Row="2" Grid.Column="0" Background="Red" Content="数据异步通信"></Button>
</Grid>
</UserControl>