微軟在WP上的發展從原來的Win7到Win8,Win8.1,到現在的Win10 UWP,什么是UWP,UWP即Windows 10 中的Universal Windows Platform簡稱。即Windows通用應用平台,在Win 10 Mobile/Surface(Windows平板電腦)/PC/Xbox/HoloLens等平台上運行,uwp不同於傳統pc上的exe應用也跟只適用於手機端的app有本質區別。它並不是為某一個終端而設計,而是可以在所有windows10設備上運行。

簡單的說,uwp就是通用應用的意思可以在電腦端,手機端,或其他設備通用。不用分別為不同的平台設計不同的軟件。即一個軟件就可以通吃。這估計現在是win10系統的一個軟件發展趨勢了。不管是開發者,還是使用者,都省事。
廢話不多說,科普完了,直接進入正題,先給大家看一下效果圖,主要是功能簡單地實現了,界面有點丑QAQ


開發工具環境:
VS2015 Update2+Win10
話說15 Update的包好大7個G左右,安裝下來大概有40個G左右,不過VS15用着還是挺有新鮮感的,還有很多新的語法糖,安裝后會有一個Wp的虛擬機,這個虛擬機還對硬件是有要求的,好像是硬件虛擬2級內存什么的,我記得不是太清楚了,系統還是Win10最好,調試的話有Wp真機的話更好,沒有的就只能就模擬器了,不過話說,微軟和Xamarinn收購以后,模擬器還是挺好用的
這里我給出官方下載地址 https://developer.microsoft.com/zh-cn/windows/downloads
1,新建項目,C# - windows - windows Phone空白應用程序
頁面代碼很簡單,就是一個Grid里面包着幾個控件
<Page x:Class="App7.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:App7" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid Background="IndianRed"> <Grid.RowDefinitions> <RowDefinition Height="100"></RowDefinition> <RowDefinition Height="80"></RowDefinition> <RowDefinition Height="100"></RowDefinition> <RowDefinition></RowDefinition> </Grid.RowDefinitions> <TextBlock Grid.Row="0" Text="Bing 詞典" Margin="0 30 0 0" FontSize="40" TextAlignment="Center"></TextBlock> <TextBlock FontSize="14" Text="V1.0(暫時只能翻譯英文)" Margin="125 80 0 0"></TextBlock> <TextBox FontSize="30" TextAlignment="Center" VerticalAlignment="Center" Grid.Row="1" Height="60" Background="White" x:Name="words"></TextBox> <Button Grid.Row="2" FontSize="40" Width="350" Height="80" Foreground="White" Background="LightPink" HorizontalAlignment="Center" Content="G O" Click="Button_Click"></Button> <TextBlock TextWrapping="Wrap" Grid.Row= "3" FontSize="30" x:Name="text"></TextBlock> <TextBlock TextWrapping="Wrap" HorizontalAlignment="Center" VerticalAlignment="Bottom" Grid.Row="3" Text="MicroSoft Bing" FontSize="30"></TextBlock> </Grid> </Page>
這其實跟我們的Html頁面差不多,他這個使用的是XAML語法,X:Name就是給控件取個名字,后台代碼如下
private async void Button_Click(object sender, RoutedEventArgs e) { string cc = words.Text.Trim(); if (cc.Length==0) { return; } string url = "http://cn.bing.com/dict/dict?q="+cc; HttpClient client = new HttpClient(); string html= await client.GetStringAsync(url); //MatchCollection mc = Regex.Matches(html,@"""def""([\s\S]+?)</li>"); MatchCollection mc = Regex.Matches(html, @"""description""([\s\S]+?)>"); List<string> list = new List<string>(); list.Add(mc[0].Groups[0].Value); string txt = string.Join("\r\n",list).Substring(23); int index = txt.IndexOf('"'); string bb = txt.Remove(index); text.Text = bb; }
原理就是利用bing詞典官方網站的URL Post請求,然后用HttpClient來接收界面,然后進行頁面解析,用正則表達式取得翻譯的那一部分,然后給Label控件賦值,其實並不是很難,就是這個正則的地方有點棘手,這個其實也可以做成網絡爬蟲的功能。
在這里,再說一下,Uwp應用和普通應用有什么區別,我們分別新建Wp8.1的項目和Windows 通用應用UWP

WP8.1就是一個項目沒有什么好說的,UWP就體現出不一樣了,他是有兩個項目和一個Shared共享文件組成的,公用的就都放在Shared,這就是他們之間最大的區別。
另外,最近模仿新浪微博,做了個CC微博,網址 CC Blog
