- 浏览: 670959 次
- 性别:
- 来自: 石家庄
文章分类
最新评论
-
abao1:
老贾 在安装IDEA的过程中,在激活步骤时,按如下操作即可: ...
IntelliJ IDEA 2016注册方法和注册码 -
bo_hai:
./usr/bin/java: symbol lookup ...
jmagick安装步骤 -
wxcking:
不错的, 收藏一下
JAVA使用POI生成Excel文件 -
zgyfh:
大哥,密码是多少啊?zgyfh@tom.com谢谢了!新手学习 ...
WPF做的必备示例 -
记忆无泪:
jiasongmao 写道你的邮箱是多少,我可以发源代码到邮箱 ...
WPF做的必备示例
silverlight项目中要求界面全键盘操作,并且在光标移动到ComboBox时,下拉框要自动展开。原有的一个类无法实现光标移动到ComboBox时下拉框要自动展开,所以修改了一下,算是能满足要求了。
代码如下:
public class EnterToTab { private static List<Type> _ctrlTypes = new List<Type>() { typeof(TextBox), typeof(PasswordBox), typeof(CheckBox), typeof(ComboBox), typeof(Button), typeof(DropDown), typeof(DatePicker), typeof(AutoCompleteBox), typeof(HyperlinkButton), typeof(MaskedEdit), }; public static void RegisterType(Type type) { if (!_ctrlTypes.Contains(type)) { _ctrlTypes.Add(type); } } public static IEnumerable<T> FindChildren<T>(DependencyObject parent) where T : class { var count = VisualTreeHelper.GetChildrenCount(parent); if (count > 0) { for (var i = 0; i < count; i++) { var child = VisualTreeHelper.GetChild(parent, i); var t = child as T; if (t != null) yield return t; var children = FindChildren<T>(child); foreach (var item in children) yield return item; } } } private UIElement _parent; private List<Control> _controls = new List<Control>(); public EnterToTab(UIElement parent) { _parent = parent; // 如果控件还没有加载完就调用 Associate() 方法,则不能查找到子控件, // 所以用定时器 DispatcherTimer timer = new DispatcherTimer(); timer.Interval = TimeSpan.FromTicks(100); timer.Tick += new EventHandler(Timer_Tick); timer.Start(); } void Timer_Tick(object sender, EventArgs e) { (sender as DispatcherTimer).Stop(); Associate(); } private bool _isAssociating = false; private void Associate() { if (_isAssociating) return; _isAssociating = true; try { // 清除原来关联过的 foreach (var c in _controls) { c.KeyUp -= new KeyEventHandler(Control_KeyUp); } _controls.Clear(); // 获取可以 Tab 的控件并加入到列表中 IEnumerable<Control> originals = EnterToTab.FindChildren<Control>(_parent); foreach (var c in originals) { if (c.IsTabStop && c.Visibility == Visibility.Visible && c.IsEnabled) { var t1 = c.GetType(); foreach (var t2 in _ctrlTypes) { if (t1.IsAssignableFrom(t2)) { c.KeyUp += new KeyEventHandler(Control_KeyUp); _controls.Add(c); break; } } } } // 根据 TabIndex 的原始值排序 _controls.Sort(new TabIndexComparer()); } finally { _isAssociating = false; } } void Control_KeyUp(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { Control source = (sender as Control); int index = _controls.IndexOf(source); if (e.Key == Key.Enter) { if (index < _controls.Count - 1) { if (source is DropDown) { DropDown dropDown = source as DropDown; dropDown.IsOpen = false; } _controls[index + 1].Focus(); if (_controls[index + 1] is ComboBox) { ComboBox nextCB = _controls[index + 1] as ComboBox; nextCB.IsDropDownOpen = true; } if (_controls[index + 1] is DropDown) { DropDown nextDropDown = _controls[index + 1] as DropDown; nextDropDown.IsOpen = true; } } } } } private class TabIndexComparer : IComparer<Control> { public int Compare(Control x, Control y) { if (x == y) { return 0; } if (x.TabIndex <= y.TabIndex) { return -1; } else { return 1; } } } }
发表评论
-
silvelright酷站
2011-03-22 18:47 808http://completit.com/# -
silverlight翻转代码
2011-03-13 18:46 1115using System; using System.Net ... -
silverlight独立存储示例
2011-03-07 17:17 1060void CreateDir(string dirNam ... -
silverlight SDK和toolit中控件英文如何转换为英文
2010-11-11 15:50 993解决方法: 设置 ... -
Silverlight4:网络地图服务
2010-10-16 11:01 1605Bing Maps与Google Earth一样 ... -
通过JS创建silverlight对象
2010-10-12 13:04 1664前言: 对于我们开发的silverlight应用来讲,有的时 ... -
silverlight childwindow源码
2010-09-18 21:17 1968<!-- // (c) Copyright Micro ... -
精彩的 Silverlight 开源项目
2010-08-18 14:32 2925Silverlight 物理模型 http://www.c ... -
MEF程序设计指南五:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata)
2010-08-12 10:34 954本文章非原创,转载自: 作 者:Beniao 文 ... -
MEF程序设计指南四:使用MEF声明导出(Exports)与导入(Imports)
2010-08-12 10:03 650本文章非原创,转载自: 作 者:Beniao 文 ... -
MEF程序设计指南三:MEF中组合部件(Composable Parts)与契约(Contracts)的基本应用
2010-08-12 09:52 568本文章非原创,转载自: 作 者:Beniao 文 ... -
MEF程序设计指南二:Silverlight中使用CompositionInitializer宿主MEF
2010-08-12 09:24 861本系列文章非原创,转载自: 作 者:Beniao ... -
MEF程序设计指南一:在应用程序中宿主MEF
2010-08-12 09:17 1051本系列文章非原创,转 ... -
silverlight应用程序库缓存
2010-08-10 14:22 1525应用程序库缓存可在用户重新访问网站时帮助改善启动性能。 ... -
Prism动态模块加载
2010-08-10 10:27 1665这篇介绍模块在silverlight的特殊应用. sil ... -
Silverlight中Json数据的转换方法(中文)
2010-08-04 11:36 1243[DataContract] public clas ... -
silverlight万花筒效果
2010-07-28 16:14 893见附件。 -
silverlight如何将颜色字符串转换为颜色
2010-07-02 10:42 1535public class ColorUtil { ... -
在两个Silverlight应用间数据通信(包括与Flash通信)
2010-05-13 17:06 1008声明:该博文转载自:http://daizhj.blog.51 ... -
silverlight和js相互调用
2010-05-13 16:56 1677步骤一:在silverlight后台代码类中声明被js调用的方 ...
相关推荐
在本文中,我们将深入探讨如何使用Silverlight控件来实现立体翻转效果。Silverlight是一种由微软开发的富客户端技术,用于创建具有丰富媒体体验和交互性功能的Web应用程序。结合Visual Studio 2010和Blend 4,开发者...
### Silverlight中实现拖动的扩展方法 #### 一、Silverlight简介与拖动功能的重要性 Silverlight是一款由微软开发的跨浏览器、跨平台的插件技术,它为Web应用程序提供了一个灵活的用户界面框架。Silverlight允许...
在Silverlight中实现登录注册翻转,开发者通常会利用XAML(Extensible Application Markup Language)来定义UI元素和布局,以及Storyboard来创建动画效果。XAML是一种声明式语言,用于描述用户界面的结构和样式,而...
"silverlight DataGrid 复杂表头的实现"这个主题聚焦于如何在DataGrid中创建具有多层或者嵌套表头的复杂布局,以满足更高级别的数据统计和分析需求。 首先,我们需要了解Silverlight DataGrid的基本结构。DataGrid...
在本文中,我们将深入探讨基于Silverlight技术实现的视频聊天Demo,这是一款适用于初学者学习和参考的应用实例。 首先,我们来了解Silverlight视频的核心技术。在Silverlight中处理视频主要依靠MediaElement控件,...
在“Silverlight 旋转导航界面”项目中,核心是利用Silverlight的动画和变换功能来实现界面元素的动态旋转效果。在Silverlight中,我们可以使用`Storyboard`来创建动画,通过定义开始和结束的关键帧,使对象在一定...
### Silverlight项目在服务器中的部署方法详解 #### 一、Silverlight概述 Silverlight是由微软开发的一款用于创建丰富互联网应用程序(RIA)的技术平台。它基于XAML(Extensible Application Markup Language),...
在Silverlight中实现Tab页功能,开发者可以利用Silverlight Toolkit中的TabControl类或者自定义控件来达到目的。TabControl提供了标准的Tab项和内容区域,通过数据绑定和模板化来展示用户界面。开发者可以定制...
此外,对于开发者来说,了解这些源码有助于提升对Silverlight打印机制的理解,从而在自己的项目中实现更高效、更灵活的打印解决方案。 总之,Silverlight的打印实现涉及到多个层面,包括UI元素的测量和布局、打印...
下面将详细介绍在Silverlight中实现验证码的三种方法。 ### 方法一:基于图像的随机数字与字母验证码 1. **生成随机字符**:首先,我们需要创建一个包含随机数字和字母的字符串。可以使用`Random`类来生成随机数,...
本文将深入探讨如何在Silverlight项目中实现多语言支持。 首先,我们来看第一种实现多语言的方式:通过资源文件的绑定。在Silverlight中,我们可以使用ResourceDictionary来存储不同语言的文本资源。创建一个或多个...
总结来说,这个资源是一个关于Silverlight的统计图表库,主要用C#编写,可以帮助开发者快速在Silverlight应用中实现各种统计图表,提高数据可视化的效率和质量。通过博客中的示例和代码,开发者可以学习如何集成和...
在本文中,我们将深入探讨如何使用Silverlight 2.0技术实现一个三维旋转立方体的交互式图形。Silverlight是Microsoft推出的一种富互联网应用程序(RIA)框架,它为开发人员提供了一种创建具有丰富视觉效果和动态交互...
在本文中,我们将深入探讨如何在Silverlight应用中实现拖放功能。Silverlight,作为微软开发的一个富互联网应用程序(RIA)平台,允许开发者创建交互性强、具有多媒体元素的Web应用程序。拖放功能是用户界面中常见的...
首先,让我们详细探讨Silverlight在实现仪表盘中的作用。Silverlight提供了丰富的UI控件和图形处理能力,可以构建出复杂的交互式用户界面。在本例中,Silverlight被用来设计和展示仪表盘的外观,包括指针、刻度、...
在Silverlight中,滤镜是通过`Effect`类来实现的,这些效果基于WPF(Windows Presentation Foundation)的Effect模型。开发者可以使用内置的效果,如DropShadowEffect、BlurEffect等,或者自定义更复杂的特效。...
在Silverlight应用中调用WebBrowser控件内的JavaScript函数,主要是通过WebBrowser控件的`InvokeScript`方法实现的。为了确保调用成功,需要关注控件加载状态、JavaScript函数的可访问性以及跨域策略的设置。这种...
2. **实现服务代理**:在Silverlight项目中,使用“添加服务引用”功能,指向WCF服务的地址,这将自动生成服务代理类,使得Silverlight客户端可以调用WCF服务的方法。 3. **编写WCF服务**:在另一个.NET项目中创建...
在本文中,我们将深入探讨如何使用Microsoft的Silverlight技术实现图片的动态放大效果。Silverlight是一种基于.NET Framework的浏览器插件,它为Web应用程序提供了丰富的交互性和多媒体体验,包括图像处理功能。 ...
本文将详细探讨如何在Silverlight应用程序中实现Excel文件的导入与导出功能。 首先,Silverlight自身并不直接支持读写本地文件系统,包括Excel文件。因此,我们需要借助其他库或服务来实现这一目标。一种常见的方法...