我已经开始把自己列为"WPF陷阱"的列表:让我烦恼的事情,我不得不写下来记住,因为我每次都为他们堕落......
现在,我很确定你们在某一时刻偶然发现了类似的情况,我希望你们分享一下你们在这个问题上的经验:
什么是让你一直得到你的东西?你觉得最烦人的那个?
(我有几个问题似乎没有解释,也许你的提交将解释它们)
以下是我的一些"人物"陷阱(随机呈现):
即使单击位于控件(例如标签)的"透明"背景上而不仅仅是内容(本例中为文本)上,也要触发MouseEvent,控件的背景必须设置为"画笔".透明"而不仅仅是"null"(标签的默认值)
WPF DataGridCell的DataContext是单元所属的RowView,而不是CellView
在ScrollViewer中,滚动条由滚动查看器本身管理(即设置属性,如ScrollBar.Value没有效果)
Key.F10
当您按下"F10",而不是你是不是开除Key.System
,你必须去看看e.SystemKey
,以获得Key.F10
......现在你开始了.
Gre*_*g D 14
始终在输出窗口中查看绑定错误.忽略输出窗口是一个流泪的秘诀.
在调试绑定失败时,在绑定中使用PresentationTraceOptions.TraceLevel ="High"来获取详细的绑定信息.
创建静态,不变的资源,例如画笔PresentationOptions:Freeze ="True"以在运行时节省资源.
使用WPF DataGrid作为数据网格.修改它以表现得像Excel是一个巨大的痛苦的屁股.
BindingList<T>
与CollectionViewSource不兼容.ObservableCollection<T>
而是从您的viewmodels中公开.
互联网提供了六种不同的想法,用于在WPF文本框中显示CueBanner文本.他们都破了.
1)当我从WinForms进行转换时,曾经每半小时给我一个:在UI上放置随机文本时使用TextBlock而不是Label(或者如果文本是静态的,根本不使用任何标签) !
2)DataTriggers/Triggers不能放入Control.Triggers,但必须进入Control.Styles/Style/Style.Triggers
3)房产的类型必须实现IList
,而不是IList<T>
,如果属性是通过XAML作为一个集合属性的认可.
4)绑定捕获异常.
5)使用单例转换器/静态转换器类,因此每次使用时都不必创建新的转换器.
6)必须明确指定DependencyProperty默认值的类型:0u
作为uint,(float) 0
作为float,0.0
作为double ...
8)永远不要PropertyMetadata
用来设置引用类型的默认值DependencyProperty
.将为拥有类的所有实例分配相同的对象引用.
归档时间: |
|
查看次数: |
2830 次 |
最近记录: |