WPF和Silverlight概述(1)

2016-08-20 10:35:16来源:http://studybao.blog.51cto.com/1772164/1135478作者:StudyBao人点击


WPF(WindowsPresentationFoundation,Windows外观基础(直译))是基于Framework3.0(含以后版本)的新一代Windows界面开发技术。


  Silverlight(中文翻译为“银光”),可以看成是WPF的Web应用产品,其早先名为WPF/E。其主要应用于Web富客户端应用程序(RIA,RichInterfaceApplication)。现阶段此技术可以说比较“火”,微软在此方面主要的对手就是Adobe公司的以Flash为基础的Flex技术。


  两者均是以XAML为基础的,在某些条件下是可以相互的转换:如定义一个简单的ARGB调色版应用:


WPF应用程序如下:


XAML文件:


<Windowx:Class="WPFColorVersion.MainWindow"


xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"


xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"


Title="WPFColorVersion"Height="300"Width="400"WindowStartupLocation="CenterScreen"ResizeMode="NoResize">


<CanvasMargin="0,0,0,0">


<Canvas.Background>


<LinearGradientBrushEndPoint="0.5,1"StartPoint="0.5,0">


<GradientStopColor="#FF6254E2"Offset="0.996"/>


<GradientStopColor="#FFFFFFFF"Offset="0"/>


</LinearGradientBrush>


</Canvas.Background>


<TextBlockHeight="34"Canvas.Left="28"Canvas.Top="17"Text="WPFColorVersion"TextWrapping="Wrap"FontSize="24"


FontFamily="ComicSansMS"FontWeight="Bold"/>


<TextBlockHeight="34"Canvas.Left="22"Canvas.Top="38"FontFamily="ComicSansMS"FontSize="24"FontWeight="Bold"


Text="WPFColorVersion"TextWrapping="Wrap"RenderTransformOrigin="0.5,0.5">


<TextBlock.Foreground>


<LinearGradientBrushEndPoint="0.5,1"StartPoint="0.5,0">


<GradientStopColor="#FF000000"Offset="1"/>


<GradientStopColor="#FFD9DFF0"Offset="0.026"/>


<GradientStopColor="#FF7D818B"Offset="0.78"/>


</LinearGradientBrush>


</TextBlock.Foreground>


<TextBlock.RenderTransform>


<TransformGroup>


<ScaleTransformScaleX="1"ScaleY="-1"/>


<SkewTransformAngleX="-29"AngleY="0"/>


<RotateTransformAngle="0"/>


<TranslateTransformX="0"Y="0"/>


</TransformGroup>


</TextBlock.RenderTransform>


</TextBlock>


<RectangleFill="#00000000"Width="156"Height="103"Canvas.Left="219"Canvas.Top="108"x:Name="demoArea"/>


<TextBlockWidth="15"Height="17"Canvas.Top="116"Text="A"TextWrapping="Wrap"Canvas.Left="28"HorizontalAlignment="Center"/>


<TextBlockWidth="15"Height="17"Canvas.Left="28"Canvas.Top="142"Text="R"TextWrapping="Wrap"HorizontalAlignment="Center"/>


<TextBlockWidth="15"Height="17"Canvas.Left="28"Canvas.Top="166"Text="G"TextWrapping="Wrap"HorizontalAlignment="Center"/>


<TextBlockWidth="15"Height="17"Canvas.Left="28"Canvas.Top="194"Text="B"TextWrapping="Wrap"HorizontalAlignment="Center"/>


<SliderWidth="148"Height="22"Canvas.Left="43"Canvas.Top="111"Maximum="255"x:Name="sliderA"ValueChanged="sliderValueChanged"/>


<SliderWidth="148"Height="22"Canvas.Left="43"Canvas.Top="137"Maximum="255"x:Name="sliderR"ValueChanged="sliderValueChanged"/>


<SliderWidth="148"Height="22"Canvas.Left="43"Canvas.Top="163"Maximum="255"x:Name="sliderG"ValueChanged="sliderValueChanged"/>


<SliderWidth="148"Height="22"Canvas.Left="43"Canvas.Top="189"Maximum="255"x:Name="sliderB"ValueChanged="sliderValueChanged"/>


<TextBlockWidth="75"Height="17"Canvas.Left="143"Canvas.Top="230"Text="ColorValue:"/>


<TextBoxWidth="89"Height="20"Canvas.Left="219"Canvas.Top="227"Text="#00000000"x:Name="txtColorValue"/>


</Canvas>


</Window>



代码文件:


usingSystem.Windows;


usingSystem.Windows.Media;



namespaceWPFColorVersion


{


///<summary>


///InteractionlogicforMainWindow.xaml


///</summary>


publicpartialclassMainWindow:Window


{


publicMainWindow()


{


InitializeComponent();


}



privatevoidsliderValueChanged(objectsender,System.Windows.RoutedPropertyChangedEventArgs<double>e)


{


bytea=(byte)(sliderA.Value);


byter=(byte)(sliderR.Value);


byteg=(byte)(sliderG.Value);


byteb=(byte)(sliderB.Value);



Colorclr=Color.FromArgb(a,r,g,b);



demoArea.Fill=newSolidColorBrush(clr);


txtColorValue.Text=clr.ToString();


而对应在Silverlight中,XAML文件内:


<UserControlx: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应用程序执行的结果如下:




在FireFox(3.0.8)及IE(8.0)中执行Silverlight项目的结果如下:




从此可以看出,WPF与Silverlight有着千丝万缕的联系,我们在学习过程中可以相互的对比。


本文来自:http://hzyup.blog.163.com/blog/static/103326012009101311458459/




最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台