【发布时间】:2011-04-11 15:58:49
【问题描述】:
我有一个 GUI 控件的标题,我想将它转换为一个简单的文本字符串。具体来说,我想删除加速键元字符。
例如(示例假定 WinForms):
- 删除单个出现的元字符:
&Yes变为Yes - 将两次出现转换为单次出现:
Income && Expense变为Income & Expense
我的代码将知道它是在处理 Windows 窗体语法(加速元字符是 &)还是 WPF(它是 _)。但是,这是在后端代码中,所以我不想依赖任何 WinForms 或 WPF 库函数——我需要使用核心(非 GUI)BCL 程序集来执行此操作。 (在这一点上,我认为任何适用于 WinForms 的东西对于 WPF 的修改都是微不足道的。)
我可以想到几种方法来做到这一点,但不清楚哪种方法最简单。
什么是最简单的方法来实现这个“如果单字删除元字符,如果加倍则去双”?
更新:我曾假设 WinForms 和 WPF 都处理这些基本相同,但事实证明他们没有。 WinForms 将在字符串末尾删除一个单独的元字符(Foo& 变为 Foo),但 WPF 不会(Foo_ 仍为 Foo_)。解决这两个问题的答案可获得奖励积分。
【问题讨论】:
标签: .net wpf winforms string accelerator