2010-01-25 54 views
5

Tôi cần tạo ứng dụng CAD dành cho máy tính để bàn mà về cơ bản cần có giao diện đẹp hiện đại. Tôi đang nghĩ đến việc tạo một ứng dụng WPF để tôi có thể có một giao diện người dùng phong phú. Có thể một số người đề xuất cho tôi một khung giao diện ứng dụng máy tính để bàn được thiết kế tốt trong WPF, xin vui lòng? Tôi đã tìm thấy một số giao diện người dùng thú vị trong video này http://channel9.msdn.com/posts/Psychlist1972/Pete-at-PDC09-WPF-3d-Awesomeness-with-Tor-and-Robby/ nhưng không chắc chắn về các điều khiển mà họ đã sử dụng trong ứng dụng của họ. Có ai có ý tưởng về điều khiển nào họ sử dụng ở đó không?tạo giao diện đẹp trong WPF

Có bất kỳ điều khiển lưới thuộc tính nào trong WPF không? Tôi đã cố gắng sử dụng lưới trong Windows Forms. Tùy chỉnh lưới này cho phù hợp với yêu cầu của tôi có vẻ khó khăn. Nó cho thấy tất cả các thuộc tính của đối tượng trực tiếp từ lớp cơ sở đến phần lớn nhất.

Trả lời

5

Với WPF, rất nhiều điều có thể. Bạn sẽ tìm thấy một loạt các ngoại hình cho các ứng dụng khác nhau do thực tế là, không giống như Windows Forms, WPF có thể được tạo khuôn mẫu và tạo kiểu giống như HTML. Các nhà thiết kế thực tế có thể dễ dàng mang lại một giao diện rất khó thực hiện trong Windows Forms. Đương nhiên, vì nó rất linh hoạt, giao diện của các ứng dụng có kiểu dáng cao sẽ thay đổi rất nhiều từ ứng dụng đến ứng dụng.

Điều đó nói rằng, có một số điều khiển bên thứ 3 rất tốt. Tất cả các nghi phạm thông thường đều có thư viện điều khiển cho WPF: Telerik, Infragistics, ComponentOne, Actipro, Devxpress chỉ để đặt tên một vài. Cụ thể, Actipro's Property Grid rất đẹp. Ngoài ra còn có một số open source one mà tôi chưa đánh giá, vì vậy không thể nói được. WPF cũng có thể là "theo chủ đề" bằng cách áp dụng các kiểu được biên dịch trước để điều khiển. Có các chủ đề mẫu được tìm thấy tại đây: http://wpfthemes.codeplex.com/. Cuối cùng, các điểm mạnh của WPF không được thực hiện đầy đủ cho đến khi bạn tìm hiểu cách tách khung nhìn được vẽ và quản lý bởi WPF và sự trừu tượng logic của khung nhìn, được gọi là mô hình khung nhìn. Josh Smith có một bài viết tuyệt vời về mẫu này, được gọi là Model-View-ViewModel, tại đây: http://msdn.microsoft.com/en-us/magazine/dd419663.aspx.

4

Tôi nghĩ Microsoft không thấy điểm nào trong việc bao gồm điều khiển PropertyGrid trong WPF bởi vì nó quá tầm thường để tạo riêng của bạn và nếu họ tạo điều khiển thì sẽ khó hơn để tạo kiểu.

Để tạo PropertyGrid riêng của bạn, chỉ cần sử dụng một <ListBox> với một <ItemsTemplate> mà có một <DockPanel> chứa một <TextBlock> cập cảng ở phía bên trái cho các tên thuộc tính và một <ContentPresenter> cho biên tập giá trị, sau đó kích hoạt nhóm trên Category tài sản.

Mã duy nhất bạn cần viết là mã phản ánh trên đối tượng và tạo danh sách thuộc tính.

Dưới đây là một ý tưởng thô của những gì bạn sẽ sử dụng:

DataContext = 
    from pi in object.GetType().GetProperties() 
    select new PropertyGridRow 
    { 
    Name = pi.Name, 

    Category = (
     from attrib in pi.GetCustomAttributes(false).OfType<CategoryAttribute>() 
     select attrib.Category 
    ).FirstOrDefault() ?? "None", 

    Description = (
     from attrib in pi.GetCustomAttributes(false).OfType<DescriptionAttribute>() 
     select attrib.Description 
    ).FirstOrDefault(), 

    Editor = CreateEditor(pi), 

    Object = object, 
    }; 

Phương pháp CreateEditor chỉ đơn giản là sẽ xây dựng một biên tập viên thích hợp cho các tài sản với một ràng buộc với giá trị tài sản thực tế.

Trong XAML, các <ListBox.ItemTemplate> sẽ là một cái gì đó như thế này:

<DataTemplate> 
    <DockPanel> 
    <TextBlock Text="{Binding PropertyName}" Width="200" /> 
    <ContentPresenter DataContext="{Binding Object}" Content="{Binding Editor}" /> 
    </DockPanel> 
</DataTemplate> 

Tôi sẽ cho bạn điền vào phần còn lại của các chi tiết.

Các vấn đề liên quan