Win10 UWP開發實現Bing翻譯


微軟在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  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM