【发布时间】:2011-02-10 13:26:14
【问题描述】:
我已经开始给自己列一个“WPF 陷阱”列表:让我烦恼的事情,我不得不写下来记住,因为我每次都爱上它们......
现在,我敢肯定你们都曾在某一时刻偶然发现过类似情况,我希望你们分享您在这个主题上的经验:
一直困扰着你的问题是什么?你觉得最讨厌的那个?
(我有几个问题似乎没有解释,也许你的意见会解释)
以下是我的一些“个人”陷阱(随机呈现):
-
即使单击是在控件的“透明”背景(例如标签)上而不只是在内容(在本例中为文本)上也能触发 MouseEvent,控件的背景必须设置为“Brushes.Transparent”,而不仅仅是“null”(标签的默认值)
-
WPF DataGridCell 的 DataContext 是单元格所属的 RowView,而不是 CellView
-
在 ScrollViewer 内部时,Scrollbar 由 scrollviewer 本身管理(即设置 ScrollBar.Value 等属性无效)
-
当你按下“F10”时
Key.F10不会被触发,而是你得到Key.System,你必须去寻找e.SystemKey来得到Key.F10
...现在你开始了。
【问题讨论】:
-
@ChrisF:以问题的形式......“有哪些 WPF 陷阱?”然后将其标记为社区 wiki。我们有很多这类问题。
-
@emddudley - a) 只有版主现在可以提出问题 CW,b) 它仍然是“x 列表”问题,c) 规则已经收紧,因为这些问题中的大多数(如果不是全部)被问到了。
-
我个人觉得这种问题很有启发性。例如,我在这方面学到了很多东西:stackoverflow.com/questions/241134/…,我认为拥有相同类型的 WPF 知识库是个好主意(关于其他主题有一些这样的问题)。我重新表述了这个问题,使它看起来像一个问题,以防它真的只是问题被提出的方式。
-
Key.F10不是“陷阱”。这就是 Windows 的工作方式。 F10 键用于为键盘用户设置菜单栏的焦点。如果它难以覆盖,希望应用程序开发人员不会弄乱它。它被称为SystemKey是出于原因,而不仅仅是为了绊倒你。 -
啊,是的,但我不认为有任何“陷阱”是为了“绊倒我”;)我希望 MS 的人不要那么邪恶......我只是在说明当您处理击键时,必须在与其他 F 键完全不同的地方寻找 F10 键,这是非常违反直觉的(如果您必须使用 F10 键,这是我的情况,不要责怪我这个,我也不喜欢这个)
标签: wpf