Creating a nice GUI in WPF

I need to create an application for CAD on the desktop, which should have a beautiful modern graphical interface. I am thinking of creating a WPF application to have a rich user interface. Can someone suggest me a well designed desktop GUI GUI in WPF, please? I found a cool GUI in this video http://channel9.msdn.com/posts/Psychlist1972/Pete-at-PDC09-WPF-3d-Awesomeness-with-Tor-and-Robby/ but are not sure which elements controls they used in their application. Does anyone have an idea what controls they used there?

Is there any control over the property grid in WPF? I tried using grid in Windows Forms. Customizing this mesh to my requirement seems complicated. It shows all the properties of an object right from the base class to the most derived one.

+5
source share
2 answers

With WPF, much is possible. You will find a wide range of views on various applications due to the fact that, unlike Windows Forms, WPF can be styled and styled just like HTML. Actual designers can easily bring looks that are very difficult to accomplish in Windows Forms. Naturally, since it is so flexible, the look of high-style applications will be very different from application to application.

, . WPF: Telerik, Infragistics, ComponentOne, Actipro, Devxpress, . , Actipro Property Grid . open source one, , . WPF "", . : http://wpfthemes.codeplex.com/.

, WPF , , , WPF, , . , Model-View-ViewModel, : http://msdn.microsoft.com/en-us/magazine/dd419663.aspx.

+5

, Microsoft PropertyGrid WPF, , , .

PropertyGrid, <ListBox> <ItemsTemplate>, <DockPanel>, <TextBlock>, <ContentPresenter> , Category.

, , - , .

, :

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,
  };

CreateEditor .

XAML <ListBox.ItemTemplate> :

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

.

+4

All Articles