在官方的Microsoft文档中,只有一个段落提到控件如何处理键盘(至less我能find): http://msdn.microsoft.com/en-us/library/cc189015(v=VS.95).aspx#inputting_text 文本input和控制 某些控件对自己处理的键盘事件做出反应。 例如,TextBox是一个控件,用于捕获并直观地表示通过使用键盘input的文本,它使用KeyUp和KeyDown以自己的逻辑捕获击键,然后在文本中引发自己的TextChanged事件实际上变了。 您通常仍然可以将KeyUp和KeyDown的处理程序添加到TextBox或用于处理文本input的任何相关控件。 但是,作为预期devise的一部分,控制可能不会响应通过关键事件指向的所有关键值。 行为是特定于每个控件。 作为一个例子,ButtonBase(Button的基类)处理KeyUp,以便它可以检查SPACEBAR或ENTER键,为了产生Click事件,它被认为相当于鼠标左键按下。 这个事件的处理是通过ButtonBase覆盖虚拟方法OnKeyUp来实现的,在它的实现中它设置了Handled = true。 结果是,在SPACEBAR的情况下侦听键事件的button的任何父母将不会收到其自己的处理程序已处理的事件。 另一个例子是TextBox。 有些键(如ARROW键)不被TextBox视为文本,而是被视为特定于控件UI行为,TextBox将这些事件事件标记为已处理。 自定义控件可以通过重写OnKeyDown / OnKeyUp来为关键事件实现自己的类似重写行为。 如果您的自定义控件处理特定的加速键,或者具有与为TextBox描述的场景类似的控件或焦点行为,则应该将此逻辑放在您自己的OnKeyDown / OnKeyUp覆盖中。 有没有更完整的参考资料? 例如在一个自动完成框中,你可以导航到build议上/下,并select一个按下input等等 肯定有一个更好的办法比聚焦每一个单一的控制和按键盘上的每一个键来找出:)
理想情况下,我需要实现WP7控件,该控件可以添加到任何XAML中,并显示dynamic的交互式3D场景。 目前,我已经通过XNA以共享模式实现了这个function,UI使用UIElementRenderer渲染在场景的顶部。 然而这个解决scheme是次优的,因为 应用程序必须呈现整个屏幕,因为在共享模式下,Silverlight本身不会绘制任何东西。 我找不到任何检测Silverlight控件需要更改其表示的方式,无论是由于用户交互还是animation。 只有在3D场景因此而改变时,才会呈现控件,所以它们缺less原生WP7应用程序的光滑外观和感觉。 那么,是否有一种方法可以在一个控件中渲染3D场景,并让Silverlightpipe理其余的UI?
在VS2012中,我的web项目像往常一样debugging得很好。 我使用IIS Express。 今天,我安装了VS 2013,当我按F5debugging时,我得到了 我无法在任何地方find解决scheme。 我尝试清理临时文件,将端口号从7227更改为其他内容,删除iis快速configuration文件等。我甚至卸载并重新安装VS 2013。 我可以运行没有debugging,然后附加到IISExpress和工作,但我不能开始与F5。 任何线索? 编辑:发生在另一台机器以及全新安装的Windows 8.1和VS 2013 编辑:解决scheme:我有Silverlight检查debugging器。 我取消了Silverlight的检查,并且可以使用F5使用Chrome或Firefox进行debugging。 显然有些东西不对,但我不需要Silverlightdebugging。
WPF和Silverlight的丰富的performance能力意味着像我这样的开发者将会更频繁地与平面devise师密切合作,就像我的下一个项目一样。 有没有人有任何提示和经验(从这两个angular度)使这个更顺利? 例如,当我最近向devise师提及源代码控制时,我很快被告知不能获取控制graphics,图像等,所以这是浪费时间。 所以我回答:好吧,但是,WPF / Silverlight中的XAML文件呢? Scott Hanselman在播客中谈到了这个话题,但是他更关注这些工具,而我更感兴趣的是沟通问题/方面。
依赖属性的创build方式与属性相同。 是仅在创build自定义控件时使用的依赖属性?
常规的.Net框架包含System.Web程序集中的HttpUtility.UrlEncode,在Silverlight中它看起来被移到了System.Windows.Browser。 但在Windows Phone 7(我认为是Silverlight相同)我似乎无法find正确的方式UrlEncode任何东西。 在Windows Phone 7环境中,前面提到的程序集都不可用。
Silverlight已经有一段时间了,Silverlight 2允许在前端使用.Net编程。 我一直在思考可以使用Silverlight创build的应用程序,但我不能决定是否应该在Silverlight中进行开发,因为我仍然关心可访问性和接受性。 从目前的趋势来看,你认为Silverlight有什么潜力?你认为Silverlight将在未来几年被用于什么?
我正在开发一个Web应用程序。 有一个地方,用户可以用HTTP协议上传文件。 在经典的HTMLfile upload控制和Java applet之间有一个上传文件的select。 经典的HTMLfile upload并不是很好,因为一次只能select一个文件,在实际上传过程中很难得到任何进度指示(我终于用定时器刷新了一个进度指示器,服务器通过AJAX调用)。 好处:它总是工作。 使用Java小程序,我可以做更多的事情:一次select多个文件(即使是一个文件夹),压缩文件,得到一个真正的进度条,拖动小程序上的文件,等等… 但是有一些缺点: 让它在Mac Safari和Mac Firefox上正常工作是一场噩梦(Thanks Liveconnect) 用户界面不完全是原生用户界面,有些人注意到了这一点 这个小程序并不像应该那样快速响应(可能是我的错,但是对我来说,一切看起来都不错) 使用HTTPS的Java UrlConnection类中存在错误,所以我使用Apache通用HTTP客户端来进行实际的HTTP上传。 这是一个非常大的包,并减缓了.jar文件的下载速度 Apache常见的HTTP客户端有时会经历代理服务器的麻烦 Java运行时相当大 我一直在维护这个Java小程序一段时间,但现在我厌倦了所有的缺点,并考虑编写/购买一个全新的组件来上传这些文件。 题 如果您有以下要求: 通过HTTP或HTTPS轻松地从浏览器上传多个文件 压缩文件以减less上传时间 上传应该可以在任何平台上使用本地用户界面 必须能够上传大文件,至less2GB 你有技术上的全权委托 你会用什么技术/组件? 编辑: 在组件上拖放文件将是一个很大的优点。 看起来好像有很多与Flash Player的bug有关的问题( swfupload已知问题 )。 正确的Mac支持和通过代理上传身份validation是我不能没有的选项。 这可能会排除所有基于Flash的选项:-(。 我排除了所有HTML / Javascript-only选项,因为您不能一次select多个文件并使用经典的HTML控件。 当您想要select文件夹中的多个文件时,点击n次“浏览”button是一种痛苦。
我在网上find的所有设置Z-Index的文档和示例都使用了一个Canvas元素作为容器。 我的项目是在一个DataTemplate的ItemsControl容器内的边界元素。 我使用MouseEnter和MouseLeave事件来触发ScaleTransform.ScaleX和ScaleTransform.ScaleY上的animation,以便它们在徘徊时增长。 由于它们被resize并与容器中的其他项目占据相同的空间,所以最近添加的项目与旧项目(与当前resize的项目相对)重叠。 有没有一种清洁的方式,使我的animation在代码中向前移动当前项目,以便在resize时重叠所有其他项目?
我已经添加了一个新的XAML页面到我的WP7应用程序,我需要在这个新页面上启动应用程序。 我怎么做 ? 我找不到在App.xaml或App.xaml.cs的任何地方引用的MainPage(这是当前/默认的开始页面)。