Silverlight 细节一
1.为文字添加垂直颜色渐变:
<TextBlock Text="Type your message">
<TextBlock.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Red"></GradientStop>
<GradientStop Color="Black" Offset="1"></GradientStop>
</LinearGradientBrush>
</TextBlock.Foreground>
</TextBlock>
2.设置全屏:
Content contentObject = Application.Current.Host.Content;
contentObject.IsFullScreen = !contentObject.IsFullScreen;
3.Grid的列宽设置方式:
Auto,Star,百分比,具体数值.
4.网站布局:
充分利用UserControl.引用UC所在的命名空间,在布局当中引用
xmls:uc="clr-namespace:Sample"
<uc:FYWorkShopTitle Grid.Row="0"/>
4.UrlEncode&&UrlDecode
页面之间常常使用Get和Post方式来传递参数数据,当使用中文作为网页参数传递时常常存在一些问题,通常的解决方法就是使用UrlEncode和UrlDecode,吧中文字符编码后再传递,然后再解码。
5.HtmlEncode&&HtmlDecode
HTML编码和解码通常是当网页中需要保存用户数据的含有HTML编辑的内容时,基于安全性考虑,常常需要将其进行HtmlEncode编码,在显示这些HTML时,通过HtmlDecode解码后显示出来:
textBlock1.Text="<div>这是一个DIV</div>";
private void btn_HtmlEncode_Click(object sender,RoutedEventArgs e)
{
textBlock1.Text=HttpUtility.HtmlEncode(textBlock1.Text);
}
6.Silverlight 通过Invoke和InvokeSelf两种对JavaScript函数的访问接口,可是通过使用HtmlPage.Document.CreateElement方法在Silverlight程序中动态创建JavaScript脚本
7.在JavaScript中调用Silverlight中的C#方法
你只要在Silverlight中这侧一个JavaScript脚本对象,并将C#方法暴漏出来即可.
//注册JavaScript的访问对象
HtmlPage.RegisterScriptableObject("Builder",this);
//定义CreateRect为脚本成员
[ScriptableMember]
public void CreateRect(int width,int height)
{
Rectangle rect=new Rectangle();
rect.Width=width;
rect.Height=height;
rect.Fill=new SolidColorBrush(Colors.Blue);
LayoutRoot.Children=Clear();
LayoutRoot.Children.Add(rect);
}
JavaScript:
<script type="text/javascript">
function createRectangle(){
//根据object 的id来获取Silverlight对象
var xamlobj=document.all('XamlObject');
//调用Silverlight中的CreateRect方法
xamlobj.content.Builder.CreateRect(document.all('txtWidth'.value,document.all('txtHeight').value);
}