basquang™ on clouds

May 8, 2009

Lập trình ứng dụng Windows tiện dụng hơn với WPF và WCF

Filed under: WPF — basquang @ 4:43 AM
Thú thực là trước đây mình toàn làm việc trên môi trường Web form là chính. Winform có chăng làm việc hồi còn là sinh viên. Do đó, bây giờ khi tiếp cận một dự án phát triển ứng dụng Winform mình cũng thấy đôi chút bỡ ngỡ. Nghe nói sức mạnh của WPF, WCF và WWF đã lâu. Đặc biệt là nếu lập trình giao diện, WPF là lựa chọn tốt. Mình đã không ngần ngại sử dụng WPF cho dự án của mình. Bài toán có xử lý files và thư mục, có thao tác files và database. Nhìn chung là không quá phức tạp, tuy nhiên những gì mình nhận thấy ở WPF và WCF là khá nhiều.
– Đầu tiên, khi tiếp cận WPF mình choáng ngay bởi không biết layout cái thằng WPF thế nào? Thật là ngố đúng ko ạh. Vì khi làm việc trên Webform mình quen với việc sử dụng Table để layouts. Nhưng đối với WPF default là Grid mà. Sau một hồi loay hoay mình cũng phát hiện ra nhiều vấn đề đối với layouts trong WPF, đó là việc sử dụng Grid.Column và Grid.Row hay là StackPanel, Rectange, Margin…Và giờ đây thì mình cũng tương đối thuần thục với WPF.
– Bài toán của mình phải thiết kế giao diện có progressbar, vì nó convert từ xml sang database bằng chương trình mà. Thế là mình lại loay hoay tìm cách sử dụng progressbar sao cho hợp lý nhất. Và mình khoái nhất cái progressbar giống như khi chúng ta cài đặt ứng dụng windows, và mình quyết tâm để làm giống như vậy. Sau một hồi loay hoay tìm hiểu, mình tìm ra giải pháp. Đó là sự kết hợp giữa những kiến thực có được trong WCF và WPF để xử lý. Thật là tuyệt, sự kết hợp này mang lại kết quả mong đợi. Ở đây chúng ta sử dụng Asynchonous pattern để binding trong WPF.
Và đây là một đoạn code của nó:
 
<StackPanel Grid.Row="0" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Bottom">
            <TextBlock FontSize="14">Processing:</TextBlock>
            <TextBlock FontSize="14" Margin="5,0,0,0" Text="{Binding Path=Current, ElementName=Window, Mode=OneWay}"/>
            <TextBlock FontSize="14" Margin="5,0,5,0">of</TextBlock>
            <TextBlock FontSize="14" Text="{Binding Path=Total, ElementName=Window, Mode=OneWay}"/>
        </StackPanel>
        <ProgressBar Grid.Row="1"
                   Width="500"
                   Height="20"
                   Value="{Binding Path=Current, ElementName=Window, Mode=OneWay}"
                   Minimum="0"
                   Maximum="{Binding Path=Total, ElementName=Window, Mode=OneWay}"></ProgressBar>
        <StackPanel Orientation="Horizontal" Margin="239,0,234.783,23" Grid.RowSpan="3">
            <Button Height="23" HorizontalAlignment="Right" Margin="0,62,25,0" Name="btnCancel" VerticalAlignment="Top" Width="75" Click="btnCancel_Click">Cancel</Button>
        </StackPanel>
 
Và kết quả

Advertisements

1 Comment »

  1. Hi there are using WordPress for your blog platform?
    I’m nnew to thee blog world but I’m trying to get started andd create
    my own. Do you require any html coding knowledge to make your own blog?
    Any help would be really appreciated!

    Comment by day c# — July 29, 2014 @ 11:17 AM | Reply


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

%d bloggers like this: