Browsed by
Month: September 2013

Highlight 1 đoạn text trong control TextBlock

Highlight 1 đoạn text trong control TextBlock

Lập trình với Silverlight, dự là sẽ có lúc bạn phải highlight một hoặc một số đoạn text tron control TextBlock (như khi cài đặt tính năng search chẳng hạn).

Để làm điều này có thể có nhiều cách, ví dụ như nhét vào một StackPanel, trong các StackPanel đó thì lại add thêm nhiều TextBlock nhỏ, mỗi TextBlock chứa đoạn text với màu tương ứng. Cách này hoàn toàn khả dĩ, tuy nhiên nếu muốn highlight n đoạn text thì nhiều khả năng bạn sẽ phải tạo đến 2n+1 TextBlock :v siêu rườm rà.

Thật ra công việc của bạn có thể đơn giản hơn bằng việc sử dụng class {php}Run{/php} nằm trong namespace {php}System.Windows.Documents{/php}. Ví dụ mình dùng dưới đây là để highlight 1 đoạn text, muốn highlight nhiều đoạn thì cũng chỉ việc làm tương tự.

/// <summary>
/// Dùng để highlight 1 đoạn text
/// </summary>
/// <param name="textBlock">Control TextBlock có đoạn text cần highlight</param>
/// <param name="text">Đoạn text hiển thị trong TextBlock</param>
/// <param name="toSet">Đoạn text cần highlight</param>
private void SetTextBlock(TextBlock textBlock, string text, string toSet)
{
    //Trước tiên phải xóa nội dung của TextBlock
    textBlock.Inlines.Clear();

    int selectedIndex = text.IndexOf(toSet);

    //Tạo một con Run, con Run này sẽ là đoạn text nằm trước đoạn cần highlight
    Run before = new Run();
    before.Text = text.Substring(0, selectedIndex);

    //Tạo con Run thứ 2, con Run này chứa đoạn text cần highlight
    Run toSetRun = new Run();
    toSetRun.Text = toSet;
    //Trang trí cho con Run này theo ý muốn của bạn
    toSetRun.Foreground = new SolidColorBrush(Colors.Orange);
    toSetRun.FontWeight = FontWeights.ExtraBold;

    //Tạo con Run thứ 3, con Run này chứa đoạn text nằm phía sau đoạn cần highlight
    Run after = new Run();
    after.Text = text.Substring(selectedIndex + toSet.Length);

    //Cuối cùng là add hết mấy con Run vừa tạo vào TextBlock
    textBlock.Inlines.Add(before);
    textBlock.Inlines.Add(toSetRun);
    textBlock.Inlines.Add(after);
}

Thử áp dụng lên một ví dụ đơn giản, bạn sẽ có được kết quả đại loại như thế này:

Chỉ đơn giản vậy thôi, chúc các bạn vui vẻ! YOLO :3

Cách làm khớp chữ T đơn giản

Cách làm khớp chữ T đơn giản

Chào các bạn, không dài dòng, hôm này mình sẽ chia sẻ với các bạn cách mà mình thường áp dụng để làm khớp chữ T. Khớp chữ T là một khớp cơ bản và quan trọng trong làm mô hình nói chung và gundam-mecha nói riêng.
Các bạn lưu ý là cách sau đây chỉ mang tính chất tham khảo, các bạn có thể dựa vào đó và “độ” thêm tùy vào nhu cầu của các bạn. Và ngoài cách này ra thì còn rất nhiều cách nữa, các bạn cứ thoải mái theo ý thích.

I. Chuẩn bị:
Đầu tiên các bạn cần chuẩn bị một cái ruột bút đã hết mực, một đoạn dây, giấy để cuốnkeo 502 (nếu cần).
Việc dùng ruột bút hay dùng cái khác hay không dùng là tùy vào các bạn và kích thước của khớp.
Việc dùng dây gì cũng tùy các bạn, ở đây mình dùng dây chỉ đã được bện thành dây, vì dây chỉ mềm.

II. Tiến hành:

Bước 1, các bạn cuốn giấy quanh đoạn ruột bút, sau đó cắt cho vừa với kích thước cần dùng, tỉa tót cho gọn gàng.

Bước 2, các bạn xâu dây qua lõi của ruột bút, vòng qua trụ thứ 2 của khớp. Làm vài vòng như thế là đủ.


Sau khi đã đủ số vòng thì các bạn siết nhẹ, các bạn có thể sẽ cần một vài que tăm để tiện cho việc giữ dây.

Bước 3, các bạn tiến hành thay que tăm bằng một cái gì đó chịu lực tốt (ở đây mình dùng ruột bút) và tiến hành thắt dây cố định.

Bước 4, đây là bước quan trọng, các bạn xoay đoạn ruột bút nhỏ ở một đầu (đoạn khớp đầu bên kia vẫn giữ nguyên). Bước này là bước quan trọng, nó sẽ xoắn các dây nằm trong lõi khớp lại, siết chặt đoạn khớp ở đầu bên kia. Đây cũng là lý do mình dùng ruột bút làm lõi, vì nếu không có ruột bút chịu lực mà chỉ có giấy không thì nhiều khi nó sẽ làm gãy ống giấy. Các bạn cứ vặn đến khi nào thấy đã đủ chặt thì đừng vặn nữa.

Bước 5, tỉa tót cho gọn gàng

Bước 6 (tùy thích), sau khi siết chặt xong, các bạn có thể chích keo 502 vào những chỗ không cần cử động, điều này làm cho khớp cứng hơn, không lỏng lẻo. Tuy nhiên các bạn lưu ý sau khi chích sau thì nên vận động khớp liên tục ở những chỗ không chích keo để đề phòng keo lan ra làm hỏng khớp. Đồng thời các bạn cũng nên làm ở nơi thoáng gió khi làm việc với keo 502, và trang bị đồ bảo hộ đầy đủ.

Kết quả bạn sẽ được như này

III. Kết:
Đối với các loại khớp có đường kính lớn, đây là một trong những cách làm hiệu quả, đối với các loại khớp đường kính bé hơn thì cách này không phải tối ưu. Tùy vào điều kiện mà các bạn nên vận dụng hợp lý.
Hy vọng chia sẻ của mình sẽ có ích cho các bạn.
Chúc các bạn làm mô hình vui vẻ! YOLO \m/

Publish ứng dụng Windows Phone dưới dạng beta

Publish ứng dụng Windows Phone dưới dạng beta

1. Publish dưới dạng beta là gì?
Publish dưới dạng beta là publish dưới dạng beta thôi, có thế mà cũng hỏi :v

2. Publish dưới dạng beta khác với publish bình thường như thế nào?
Theo quy trình bình thường, mỗi khi bạn submit một ứng dụng lên store, ứng dụng sẽ đi qua hàng loạt các bài test trước khi bạn biết được kết quả là ứng dụng liệu đã đạt chuẩn hay chưa. Quá trình này thường tốn của chúng ta từ 3-5 ngày.
Publish dưới dạng beta thì không như vậy, ứng dụng chúng ta sẽ không được test bởi đội ngũ tester của store, mà sẽ là những tester do chúng ta quyết định. Thời gian từ khi chúng ta submit ứng dụng thành công đến khi ứng dụng có mặt trên store chỉ là vài phút.

3. Sướng vậy, vậy sao không publish ứng dụng theo kiểu beta luôn cho rồi?
Cái đó là tùy bạn :v vì chỉ những ai được chỉ định mới có thể tải ứng dụng về từ store, số lượng này được giới hạn là 10k người. Và thêm một điều nữa là những ứng dụng được publish dưới dạng beta chỉ có thể có mặt trên store trong 90 ngày.

4. Thế tại sao lại phải dùng tính năng beta testing?
Cái lợi lớn nhất là tiết kiệm thời gian cho bạn. Vì không phải cứ test ngon lành ứng dụng nào thì ứng dụng đó sẽ pass. Có một số lỗi chỉ xuất hiện KHI VÀ CHỈ KHI ứng dụng được tải trực tiếp về từ store. Ví dụ bạn đang tham gia một cuộc thi, thì mỗi lần ứng dụng của bạn bị fail là một lần bất lợi cho bạn.

5. Còn gì cần lưu ý nữa không?
Tính năng mới chỉ có mặt trên Windows Phone Store, Windows Store thì vẫn chưa. Thêm nữa là tổng lượng download dạng beta cũng được tính chung vào với tổng lượt download của tài khoản của bạn.

6. Vậy cụ thể các bước để upload dưới dạng beta là như nào?
Rất dễ, đầu tiên bạn đăng nhập vào tài khoản developer của bạn, tiến hành Submit App như bình thường

Tiếp theo bạn cũng tiến hành cập nhật thông tin của ứng dụng bằng cách chọn mục App info

Đây mới là bước cần lưu ý, sau khi nhập xong thông tin của ứng dụng, bạn kéo xuống gần cuối trang sẽ thấy mục More options, bạn nhấp vào, ở tùy chọn Distribution channels, bạn chọn Beta, đồng thời điền email của những tester được chỉ định, các email phải cách nhau bằng dấu chấm phẩy (‘;’). Lưu ý là chỉ device nào được gán với các email này thì mới xem và tải được ứng dụng của bạn từ store.

Các bước còn lại các bạn cứ tiến hành như bình thường. Sau khi submit thành công, chờ một vài phút (thường là như vậy, cá biệt có lần vì store bị nghẽn nên phải gần 6 tiếng sau thì ứng dụng của mình mới xuất hiện) là ứng dụng của bạn đã có mặt trong dashboard, từ đây bạn có thể lấy link và gửi cho các tester.

Vậy là xong, cách làm trên đây sẽ giúp bạn giảm thiểu tối đa thời gian trong việc submit ứng dụng lên store, tuy nhiên không có giải pháp nào là triệt để hoàn toàn, vậy nên để đỡ tốn thời gian, theo mình thì chúng ta vẫn nên {php}try{/php} – {php}throw{/php} – {php}catch{/php} kỹ càng và thường xuyên.

Chúc các bạn vui vẻ! YOLO \m/

Tôi đi học

Tôi đi học

Thầy Huỳnh Bá Tam đánh trống khai giảng năm học 2013-2014 tại trường THPT Phan Châu Trinh – Đà Nẵng

Ngày 5/9,
Báo mạng đua nhau đưa tin về tình hình khai giảng của cả nước, niu-phít Phây Búc thì đi đâu cũng thấy trích dẫn lại tuyệt phẩm truyện ngắn của nhà văn Thanh Tịnh: “Hằng năm cứ vào cuối thu, lá ngoài đường rụng nhiều…”. Con người dù có bận rộn đến đâu, lướt qua những mẩu tin như thế, cũng không tránh khỏi chút xốn xang dịu nhẹ trong lòng.

Read More Read More