21
2014
05

Silverlight 鼠标双击事件

 


Silverlight 5的新特性中已经包含了鼠标双击的事件

<Grid x:Name="LayoutRoot" Background="White">
        <Ellipse Height="103" HorizontalAlignment="Left" Fill="Green" Margin="117,56,0,0"
                 Name="ellipse1" Stroke="Black" StrokeThickness="1" VerticalAlignment="Top"
                 Width="158" MouseLeftButtonDown="ellipse1_MouseLeftButtonDown" 
                 MouseRightButtonDown="ellipse2_MouseRightButtonDown" />
    </Grid>

19
2014
05

Silverlight调用WCF服务引用提示:无法生成服务引用

 

Silverlight在添加WCF服务引用的时候,发现 Reference.cs 里面没有生产任何代码,并且提示:无法生成服务引用


解决方法为:

在重新引用服务的时候,或者是是更新引用服务的时候,点“高级”按钮,在服务引用设置对话框中,将“重新使用引用的程序集中的类型”这个勾取消,这样就能安全的重新引用服务。

17
2014
05

Silverlight 利用 WebClient 上传文件和下载文件

 

 

 

 

UC_UpDown.xaml


<UserControl x:Class="HCLoad.UC_UpDown"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Width="500" Height="500">
    <StackPanel Background="White" Height="450">
        <Button Content="down" Click="Button_Click"></Button>
        <HyperlinkButton Content="下载保存" NavigateUri="http://localhost:4528/download.ashx?fileName=aa.txt" TargetName="_self" x:Name="lBtnDown" />
        <TextBlock x:Name="tbMsgString" Text="下载进度" TextAlignment="Center" Foreground="Green"></TextBlock>
        <Button x:Name="btnDownload" Content="DownLoad Pictures" Width="150" Height="35" Margin="15" Click="btnDownload_Click"/>
        <Border Background="Wheat" BorderThickness="5" Width="400" Height="280">
            <Image x:Name="imgDownLoad" Width="400" Height="300" Margin="15" Stretch="Fill"/>
        </Border>
        <Button x:Name="btnUpLoad" Content="UpLoad Pictures" Width="150" Height="35" Margin="15" Click="btnUpLoad_Click"/>
    </StackPanel>
</UserControl>

17
2014
05

silverlight利用webservice上传文件到服务器

 

 


silverlight不支持本地文件创建等相关操作,上传文件时可以先把文件读入字节数组,然后调用web服务实现上传。

具体实现如下:

silverlight端代码:

private void button1_Click(object sender, RoutedEventArgs e) 
       { 
           OpenFileDialog dialog = new OpenFileDialog(); 
           if (dialog.ShowDialog().Value) 
           { 
               // 选择上传的文件 
               FileInfo file = dialog.File; 
               Stream stream = file.OpenRead(); 
               stream.Position = 0; 
               byte[] buffer = new byte[stream.Length + 1]; 
               //将文件读入字节数组 
               stream.Read(buffer, 0, buffer.Length); 
               String fileExtention = file.Extension; 
               //调用服务上传 
               ServiceReference1.UploadFileSoapClient upfile = new UploadFileSoapClient(); 
               upfile.UploadfileAsync(buffer, fileExtention); 
               upfile.UploadfileCompleted += new EventHandler<UploadfileCompletedEventArgs>(upfile_UploadfileCompleted); 
              
           } 
           else 
           { 
               MessageBox.Show("请选择文件!"); 
           }            
       }  
          void upfile_UploadfileCompleted(object sender, UploadfileCompletedEventArgs e) 
           {               
                MessageBox.Show("上传成功!"); 
           } 

17
2014
05

如何向silverlight / xap传递参数

 

 

html部分:

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
 <param name="source" value="ClientBin/InitParams.xap?color=red"/>
 <param name="onerror" value="onSilverlightError" />
 <param name="background" value="white" />
 <param name="minRuntimeVersion" value="3.0.40624.0" />
 <param name="autoUpgrade" value="true" />
 <param name="InitParams" value="name=jimi,age=30" />
 <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration: none;">
 <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="获取 Microsoft Silverlight" style="border-style: none"/>
 </a>
</object>

17
2014
05

WCF 获取路径

 


currExecutePath = System.Web.Hosting.HostingEnvironment.MapPath("~"); 

或者

currExecutePath = System.AppDomain.CurrentDomain.BaseDirectory

16
2014
05

Silverlight中XAML中输入中文提示给定编码中的字符无效

在 Silverlight 开发过程中,有的时候需要对 控件的 Header 或 Text 直接输入中文名称, 提示 : 给定编码中的字符无效

 

 

13
2014
05

Silverlight中ChildWindow与Page(子窗体和页)的区别

 


从字面上可以看出一个是窗体一个是页面

1.窗体和页面关闭的区别

在以ChildWindow为根元素生成的隐藏代码中,若关闭该窗体应在隐藏代码文件的具体方法中调用this.DialogResult = false即可;

在以Page为根元素生成的隐藏代码中,若关闭该页面应在隐藏代码文件的具体方法中调用NaviHelper.NavigateBack(Object obj)即可;


2.窗体和页面转换的区别

12
2014
05

silverlight添加ToolTipService提示信息

 

 

Silverlight 提供了一个名为“ToolTipService”的控件用于为Silverlight 控件显示工具提示。这个类可以附着在Silverlight 中的大多数UI 元素上用于显示工具提示。

  简单的文本提示

  下面的示例代码显示如何为一个按钮控件添加工具提示:

<Button Width="60" Height="20" Content="My Button">
<ToolTipService.ToolTip>
<ToolTip Content="This is tool tip for Button"></ToolTip>
</ToolTipService.ToolTip>
</Button>
 

12
2014
05

silverlight 中 tooltip 内容换行的问题

 

 

 silverlight 中 tooltip有的时候内容过长,或者内容有固定的格式,需要在固定的位置换行,

我们可以直接在内容中插入  Environment.NewLine  或者  \n 就可以实现换行了 ,。