Viết 1 WinRT component có 1 hàm giải phương trình bậc 2.
Viết 1 ứng dụng windows Store app sử dụng WinRT component trên và có giao diện như sau:
Viết 1 menu cho phép người dùng thay đổi ngôn ngữ của ứng dụng từ tiếng việt -> English
Change Language English
Change Language VietNam
MainPage.xaml
Windows Store 2017
<Page x:Class="LocalizationSample.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:LocalizationSample" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <ComboBox x:Name="cbbLanguage" SelectedValuePath="Name" HorizontalAlignment="Left" Margin="122,95,0,0" VerticalAlignment="Top" Width="192"> <ComboBoxItem x:Name="en" Content="English"/> <ComboBoxItem x:Name="vi" Content="VietNam"/> </ComboBox> <Button x:Name="btnChangeLanguage" Content="Change Language" HorizontalAlignment="Left" Margin="370,92,0,0" VerticalAlignment="Top" Click="btnChangeLanguage_Click" d:LayoutOverrides="HorizontalAlignment"/> <TextBox x:Name="tb_a" HorizontalAlignment="Left" Margin="221,200,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="203"/> <TextBox x:Name="tb_b" HorizontalAlignment="Left" Margin="221,263,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="203"/> <TextBox x:Name="tb_c" HorizontalAlignment="Left" Margin="221,317,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="203"/> <TextBox x:Name="tb_kq" HorizontalAlignment="Left" Margin="221,0,0,351" TextWrapping="Wrap" Text="" VerticalAlignment="Bottom" Width="203"/> <Button x:Name="btn_giai" Content="Giai" Margin="122,0,0,263" VerticalAlignment="Bottom" Click="btn_giai_Click"/> <Button x:Name="btn_moi" Content="Moi" Margin="240,0,0,263" VerticalAlignment="Bottom" Click="btn_moi_Click"/> <Button x:Name="btn_thoat" Content="Thoat" Margin="370,0,0,263" VerticalAlignment="Bottom" Click="btn_thoat_Click"/> <TextBlock x:Name="textBlock_A" HorizontalAlignment="Left" Margin="125,215,0,0" TextWrapping="Wrap" VerticalAlignment="Top" FontSize="18" Height="17"> <Run Text="Nhap A"/> <LineBreak/> <Run/> </TextBlock> <TextBlock x:Name="textBlock_B" HorizontalAlignment="Left" Margin="125,263,0,0" TextWrapping="Wrap" VerticalAlignment="Top" FontSize="18" Text="Nhap B
" Height="32"/> <TextBlock x:Name="textBlock_C" HorizontalAlignment="Left" Margin="125,327,0,0" TextWrapping="Wrap" VerticalAlignment="Top" FontSize="18" Text="Nhap C"/> <TextBlock x:Name="textBlock_D" HorizontalAlignment="Left" Margin="125,0,0,351" TextWrapping="Wrap" VerticalAlignment="Bottom" FontSize="18" Text="Ket qua
" Width="91" Height="32"/> </Grid> </Page>
MainPage.xaml.cs
Windows Store 2017
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using Windows.ApplicationModel.Resources.Core; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Media.Imaging; using Windows.UI.Xaml.Navigation; using WindowsRuntimeComponent1; //Import project componentRT namespace LocalizationSample { public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); } private void btnChangeLanguage_Click(object sender, RoutedEventArgs e) { var c = ResourceContext.GetForCurrentView(); var lang = new List<string>(); lang.Add(cbbLanguage.SelectedValue.ToString()); c.Languages = lang; var r = ResourceManager.Current.MainResourceMap.GetSubtree("Resources"); // Đưa nghĩa từ file dịch vào TextBlock textBlock_A.Text = r.GetValue("AppStringA", c).ValueAsString; textBlock_B.Text = r.GetValue("AppStringB", c).ValueAsString; textBlock_C.Text = r.GetValue("AppStringC", c).ValueAsString; textBlock_D.Text = r.GetValue("AppStringD", c).ValueAsString; // Đưa nghĩa từ file dịch vào Button btn_giai.Content = r.GetValue("AppStringGiai", c).ValueAsString; btn_moi.Content = r.GetValue("AppStringMoi", c).ValueAsString; btn_thoat.Content = r.GetValue("AppStringThoat", c).ValueAsString; } private void btn_giai_Click(object sender, RoutedEventArgs e) { //Gọi method giai(truyền tham số a,b,c) và lấy giá trị về hiển thị kết quả WindowsRuntimeComponent1.Class1 cl = new Class1(); String s = cl.giai((float)Convert.ToDouble(tb_a.Text), (float)Convert.ToDouble(tb_b.Text), (float)Convert.ToDouble(tb_c.Text)); tb_kq.Text = s; } private void btn_moi_Click(object sender, RoutedEventArgs e) { tb_a.Text = ""; tb_b.Text = ""; tb_c.Text = ""; tb_kq.Text = ""; //Reset textbox } private void btn_thoat_Click(object sender, RoutedEventArgs e) { Application.Current.Exit(); //Exit App } } }
Tạo Windows Runtime Component
Class1.cs
Windows Store 2017
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WindowsRuntimeComponent1 { public sealed class Class1 { public String giai(float a, float b, float c) { float delta; float x; float x2; float x1; delta = (b * b) - (4 * a * c); if (a == 0) { if (b == 0 && c != 0) return "Phuong trinh vo nghiem"; else { x = -c / b; return "Phuong trinh co nghiem " + x.ToString(); } } else { if (delta < 0) return "Phuong trinh vo nghiem"; else if (delta == 0) { x = -b / 2 * a; return "Phuong trinh co nghiem" + x.ToString(); } else { x1 = (-b - (float)Math.Sqrt(delta)) / 2 * a; x2 = (-b + (float)Math.Sqrt(delta)) / 2 * a; return "x1=" + x1.ToString() + "\nx2= " + x2.ToString(); } } } } }
Tạo xong Class1.cs chúng ta cần phải Add References cho App có tên LocalizationSaple này
Sau khi Add thành công
Tạo đa ngôn ngữ chúng ta cần tạo Folder String > en và vi
Trong đó Tạo Resources.resw
Phần dịch ngôn ngữ tiếng Việt nam
Tiếng anh
Về phần folder MultilingualResources tự tạo bằng cài đặt tool
0 nhận xét:
Post a Comment