Using Thai language with Silverlight 2.0

22 Oct 2008

เมื่อคราว Silverlight 1 ออกมา เราก็ใช้ภาษาไทยกับ Silverlight ได้แบบพอถูไถกันไป พอคราว Silverlight 2 Beta 2 ออกมา ทาง GreatFriends ก็ได้แสดงวิธีการใช้งานภาษาไทยใน Silverligh 2 Beta 2 ไปแล้ว คราวนี้เมื่อตัวจริงออกมาเราก็จะมาดูว่าภาษาไทยได้รับการปรับปรุงไปขนาดไหนแล้ว โดยในครั้งนี้เราจะใช้แค่เพียง Expression Blend 2 Service Pack 1 เท่านั้น ถ้ายังไม่มีสามารถดาวน์โหลดได้ที่ http://silverlight.net/GetStarted/

หลังจากเปิด Blend ขึ้นมาแล้วก็ลองสร้างโปรเจคใหม่ชื่อ ThaiLang

createproject

สร้าง TextBox และ TextBlock ขึ้นมาอย่างละอัน ใครขี้เกียจจะใช้ XAML ข้างล่าง

<Grid x:Name="LayoutRoot" Background="#FFBDBDBD">
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <TextBlock Text="TextBlock" TextWrapping="Wrap" Margin="50,10,50,10" Grid.Row="0"/>
    <TextBox HorizontalAlignment="Stretch" Margin="50,10,50,10" Width="Auto" Grid.Row="1" Text="TextBox" TextWrapping="Wrap"/>
</Grid>
2-textblock-textbox

ทีนี้ถ้าเราลองใส่ข้อความภาษาไทยลงไป

๏ เป็นมนุษย์สุดประเสริฐเลิศคุณค่า
กว่าบรรดาฝูงสัตว์เดรัจฉาน
จงฟันฝ่าพัฒนาวิชาการ
อย่าล้างผลาญฤๅเข่นฆ่าบีฑาใคร
ไม่ถือโทษโกรธแช่งซัดฮึดฮัดด่า
หัดอภัยเหมือนกีฬาอัชฌาสัย
ปฏิบัติประพฤติกฎกําหนดใจ
พูดจาให้จ๊ะๆ จ๋าๆ น่าฟั งเอยฯ

พ่อปู่พี่ปี่ฎฐุญุกิสมิํธมฺมํเกื็อกป่า

๐๑๒๓๔๕๖๗๘๙ กกๆ ๚ะ๛
A QUICK BROWN FOX JUMPS OVER THE LAZY DOG.
a quick brown fox jumps over the lazy dog.
0123456789

เละครับเละ

thai-fail

เพราะว่าฟอนท์ตั้งต้นที่ติดมากับ Silverlight ที่ชื่อ Portable User Interface ไม่สามารถแสดงภาษาไทยได้ก็เลยกลายเป็นสี่เหลี่ยมๆไปหมด แต่ถ้าฟอนท์แสดงภาษาไทยได้ก็สบายเรา

งั้นก็ลองปรับให้ใช้ฟอนท์ที่รองรับภาษาไทยอย่าง Tahoma ดูซิ

font1

เป็นภาษาไทยแล้วล่ะ แต่ Blend จะขึ้นข้อความมาเตือนอะไรบางอย่าง

The font, Tahoma, isn’t a built-in silverlight font. You must embed this font for it to display on your Silverlight Application

เมื่อเราติ๊กคำว่า Embed ในแท็บ Properties แล้วข้อความเมื่อกี้ก็หายไป

font2

แต่เราจะได้สิ่งนี้มาแทน

file-explorer

ถ้าเราขยับๆ จะเห็น Silverlight 2.0 รองรับการตัดคำภาษาไทยแล้ว เย่

result

แต่ก็มาตกม้าตายตอนท้ายเพราะว่าพอลองใช้ TextBox ว่าพอกดปุ่มสระปุ๊บก็เละครับ Silverlight Object หายไปเลย ทางแก้ง่ายมาก ก็อย่าเพิ่งใช้ Silverlight กับงานที่ต้องกรอกข้อมูลหรือไม่ก็ใช้วิธีเดียวกับ Silverlight 1.0 คือเอา HTML input textbox มาใช้แทน แล้วก็อย่าลืมเข้าไปดูที่บักนี้ แล้วเพิ่มลง watchlist ด้วย เค้าจะได้รู้ว่าเรารอให้เค้าแก้บักนี้กันหลายคนเหมือนกัน

Comments

ตอนมันเละแล้วทำไม A Quick Brown Fox มันก็เป็นกล่องเหลี่ยม ๆ หว่า?

แต่ดูแล้วสระลอยเคว้งเลย

Posted by keng | Oct 22nd, 2008 at 5:51 pm | Reply

มันไม่ได้แสดง A Quick Brown Fox นะฮะ มันเลื่อนลงมาไม่ถึง

แต่จริงๆผมก็ลืมดุไปเหมือนกัน สระลอยเคว้งจริงๆ

Posted by wiennat | Oct 22nd, 2008 at 6:28 pm | Reply

ถ้าเป็น DataGrid มันจะขึ้นบ้างไม่ขึ้นบ้างล่ะ อิอิ

Posted by meekob | Oct 23rd, 2008 at 12:06 am | Reply

Post new comment

The content of this field is kept private and will not be shown publicly.