微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WPF和Silverlight概述1

WPFWindows Presentation FoundationWindows外观基础(直译))是基于Framework 3.0(含以后版本)的新一代Windows界面开发技术。

  Silverlight中文翻译为银光),可以看成是WPFWeb应用产品,其早先名为WPF/E。其主要应用于Web富客户端应用程序(RIARich Interface Application)。现阶段此技术可以说比较,微软在此方面主要的对手就是Adobe公司的以Flash为基础的Flex技术。  两者均是以XAML为基础的,在某些条件下是可以相互的转换:如定义一个简单的ARGB调色版应用:WPF应用程序如下: XAML文件

<Window x:Class="WPFColorVersion.MainWindow"    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"    Title="WPF Color Version" Height="300" Width="400" WindowStartupLocation="CenterScreen" ResizeMode="noresize">    <Canvas Margin="0,0">        <Canvas.Background>            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,255)">                <GradientStop Color="#FF6254E2" Offset="0.996"/>                <GradientStop Color="#FFFFFFFF" Offset="0"/>            </LinearGradientBrush>        </Canvas.Background>        <TextBlock Height="34" Canvas.Left="28" Canvas.Top="17" Text="WPF Color Version" textwrapping="Wrap" FontSize="24"             FontFamily="Comic Sans MS" FontWeight="Bold"/>        <TextBlock Height="34" Canvas.Left="22" Canvas.Top="38" FontFamily="Comic Sans MS" FontSize="24" FontWeight="Bold"             Text="WPF Color Version" textwrapping="Wrap" RenderTransformOrigin="0.5,0.5">            <TextBlock.Foreground>                <LinearGradientBrush EndPoint="0.5,255)">                    <GradientStop Color="#FF000000" Offset="1"/>                    <GradientStop Color="#FFD9DFF0" Offset="0.026"/>                    <GradientStop Color="#FF7D818B" Offset="0.78"/>                </LinearGradientBrush>            </TextBlock.Foreground>            <TextBlock.RenderTransform>                <TransformGroup>                    <ScaleTransform ScaleX="1" ScaleY="-1"/>                    <SkewTransform AngleX="-29" AngleY="0"/>                    <RotateTransform Angle="0"/>                    <TranslateTransform X="0" Y="0"/>                </TransformGroup>            </TextBlock.RenderTransform>        </TextBlock>        <Rectangle Fill="#00000000" Width="156" Height="103" Canvas.Left="219" Canvas.Top="108" x:Name="demoArea" />        <TextBlock Width="15" Height="17" Canvas.Top="116" Text="A" textwrapping="Wrap" Canvas.Left="28" HorizontalAlignment="Center"/>        <TextBlock Width="15" Height="17" Canvas.Left="28" Canvas.Top="142" Text="R" textwrapping="Wrap" HorizontalAlignment="Center"/>        <TextBlock Width="15" Height="17" Canvas.Left="28" Canvas.Top="166" Text="G" textwrapping="Wrap" HorizontalAlignment="Center"/>        <TextBlock Width="15" Height="17" Canvas.Left="28" Canvas.Top="194" Text="B" textwrapping="Wrap" HorizontalAlignment="Center"/>        <Slider Width="148" Height="22" Canvas.Left="43" Canvas.Top="111" Maximum="255" x:Name="sliderA" ValueChanged="sliderValueChanged"/>        <Slider Width="148" Height="22" Canvas.Left="43" Canvas.Top="137" Maximum="255" x:Name="sliderR" ValueChanged="sliderValueChanged"/>        <Slider Width="148" Height="22" Canvas.Left="43" Canvas.Top="163" Maximum="255" x:Name="sliderG" ValueChanged="sliderValueChanged"/>        <Slider Width="148" Height="22" Canvas.Left="43" Canvas.Top="189" Maximum="255" x:Name="sliderB" ValueChanged="sliderValueChanged"/>        <TextBlock Width="75" Height="17" Canvas.Left="143" Canvas.Top="230" Text="Color Value:"/>        <TextBox Width="89" Height="20" Canvas.Left="219" Canvas.Top="227" Text="#00000000" x:Name="txtColorValue"/>    </Canvas></Window>代码文件using System.Windows;using System.Windows.Media;namespace WPFColorVersion{    /// <summary>    /// Interaction logic for MainWindow.xaml    /// </summary>    public partial class MainWindow : Window    {        public MainWindow()        {            InitializeComponent();        }        private void sliderValueChanged(object sender, System.Windows.RoutedPropertyChangedEventArgs<double> e)            byte a = (byte)(sliderA.Value);            byte r = (byte)(sliderR.Value);            byte g = (byte)(sliderG.Value);            byte b = (byte)(sliderB.Value);            Color clr = Color.FromArgb(a, r, g, b);            demoArea.Fill = new SolidColorBrush(clr);            txtColorValue.Text = clr.ToString();而对应在Silverlight中,XAML文件内:<UserControl x:Class="SilverlightColorVersion.MainPage"    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     Width="400" Height="300">    <!--此位置与WPF项目的XAML文件内容完全相同--></UserControl>另外,Silverlight代码文件内容也与WPF项目中的代码相同。WPF应用程序执行的结果如下:

 

 

FireFox3.0.8)及IE8.0)中执行Silverlight项目的结果如下:

 

从此可以看出,WPFSilverlight有着千丝万缕的联系,我们在学习过程中可以相互的对比。本文来自:http://hzyup.blog.163.com/blog/static/103326012009101311458459/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐