Ram*_*Ram 6 wpf user-interface look-and-feel
我需要创建一个桌面CAD应用程序,它本质上应该有一个漂亮的现代GUI.我正在考虑创建一个WPF应用程序,以便我可以拥有一个丰富的用户界面.有人会建议我在WPF中设计精良的桌面应用程序GUI框架吗?我在这个视频中发现了一些很酷的GUI http://channel9.msdn.com/posts/Psychlist1972/Pete-at-PDC09-WPF-3d-Awesomeness-with-Tor-and-Robby/ 但不确定他们使用的控件在他们的申请中.有没有人知道他们在那里使用了哪些控件?
WPF中是否有任何属性网格控件?我试图在Windows窗体中使用网格.根据我的要求定制此网格似乎很困难.它直接从最基类到最大派生,显示了对象的所有属性.
使用WPF,可以实现很多.你可以找到各种应用程序的各种外观,因为与Windows Forms不同,WPF可以像HTML一样进行模板化和样式化.实际的设计人员可以轻松地带来在Windows窗体中很难实现的外观和感觉.当然,由于它非常灵活,高风格应用程序的外观在应用程序之间会有很大差异.
也就是说,有一些非常好的第三方控件.所有常见的犯罪嫌疑人对WPF控件库:Telerik的,Infragistics的,ComponentOne的,Actipro,Devxpress只是仅举几例.具体来说,Actipro的Property Grid非常好.还有一个我没有评估的开源,所以不能说.WPF也可以通过将预编译样式应用于控件来"主题化".这里有一些示例主题:http://wpfthemes.codeplex.com/.
最后,在您学习如何分离由WPF绘制和管理的视图以及视图的逻辑抽象(称为视图模型)之前,WPF的优势尚未完全实现.Josh Smith有一篇关于这种模式的精彩文章,名为Model-View-ViewModel,在这里:http://msdn.microsoft.com/en-us/magazine/dd419663.aspx.
我认为微软认为在WPF中包含一个PropertyGrid控件是没有意义的,因为创建自己的控件非常简单,如果他们创建了控件,那么它的样式就更难了.
要创建自己的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,
};
Run Code Online (Sandbox Code Playgroud)
CreateEditor方法只是为属性构造一个适当的编辑器,并绑定到实际的属性值.
在XAML中,<ListBox.ItemTemplate>
将是这样的:
<DataTemplate>
<DockPanel>
<TextBlock Text="{Binding PropertyName}" Width="200" />
<ContentPresenter DataContext="{Binding Object}" Content="{Binding Editor}" />
</DockPanel>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
我会让你填写剩下的细节.
归档时间: |
|
查看次数: |
26158 次 |
最近记录: |