work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  B.WPF

摘要:一、线程概述:【引用MSDN】通常,WPF 应用程序从两个线程开始:一个用于处理呈现,一个用于管理 UI。呈现线程有效地隐藏在后台运行,而 UI 线程则接收输入、处理事件、绘制屏幕以及运行应用程序代码。大多数应用程序都使用一个 UI 线程,但在某些情况下,最好使用多个线程。我们将在后面举例说明这一点。UI 线程对一个名为 Dispatcher 的对象内的工作项进行排队。Dispatcher 基于优先级选择工作项,并运行每一个工作项,直到完成。每个 UI 线程都必须至少有一个 Dispatcher,并且每个 Dispatcher 都只能在一个线程中执行工作项。要构建响应速度快、且用户友好的应用程 阅读全文

posted @ 2011-09-01 17:55 work hard work smart 阅读(17842) 评论(0) 推荐(5)

摘要:WPF的小示例1、<Window x:Class="GadgetWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="300" Width="300" AllowsTransparency="True" WindowStyle="None&qu 阅读全文

posted @ 2011-08-31 15:38 work hard work smart 阅读(739) 评论(0) 推荐(0)

摘要:我想大部分的WPF和SL开发者都应该对INotifyPropertyChanged这个接口再熟悉不过了。当我们向UI传递属性变化的通知并更新客户端UI时就必须应用到它。(这里插一句,当一个集合中的项改变时我们则需要使用ObservableCollection<T>泛型集合)假设我们有一个叫做MenuButtonModel的类,其中一个属性为HasFocus,那么通常情况下我们会这样实现INotifyPropertyChanged接口【补充】 INotifyPropertyChanged.PropertyChanged事件,它什么时候为空不为空??控件绑定数据源时,控件会自动订阅实现 阅读全文

posted @ 2011-08-30 15:07 work hard work smart 阅读(1493) 评论(0) 推荐(1)

摘要:属性是我们再熟悉不过的了,那么究竟依赖属性怎么写呢?依赖属性和属性到底有什么区别和联系呢?其实依赖属性的实现很简单,只要做以下步骤就可以实现: 第一步: 让所在类型继承自 DependencyObject基类,在WPF中,我们仔细观察框架的类图结构,你会发现几乎所有的 WPF 控件都间接继承自DependencyObject类型。 第二步:使用 public static 声明一个 DependencyProperty的变量,该变量才是真正的依赖属性 ,看源码就知道这里其实用了简单的单例模式的原理进行了封装(构造函数私有),只暴露Register方法给外部调用。 第三步:在静态构造函数中完成依 阅读全文

posted @ 2011-08-23 16:53 work hard work smart 阅读(1252) 评论(0) 推荐(0)

摘要:<Grid> <Canvas x:Name="LayoutRoot"> <Image Cursor="Hand" MouseLeftButtonDown="imgLogo1_MouseLeftButtonDown" MouseEnter="imgLogo1_MouseEnter" MouseLeave="imgLogo1_MouseLeave" Canvas.ZIndex="1" x:Name="imgLogo1" Canva 阅读全文

posted @ 2011-08-23 14:54 work hard work smart 阅读(5696) 评论(0) 推荐(0)

摘要:一、ListBox系列索引1、WPF ListBox基础(包括ListBox多列展示,ListBox实现分页效果,ListBox绑定XML数据源)2、ListBox 单击变大动画效果(使用模板、样式、绑定数据源等)二 ListBox基础:包括ListBox多列展示,ListBox实现分页效果,ListBox绑定XML数据源。1.ListBox多列展示 <ListBox> <ListBox.ItemsPanel> <ItemsPanelTemplate> <UniformGrid Columns="4"/>... 阅读全文

posted @ 2011-08-16 09:09 work hard work smart 阅读(19306) 评论(0) 推荐(5)

摘要:有的时候,我们想让绑定的数据以其他的格式显示出来,或者转换成其他的类型,我们可以使用值转换器来实现.比如我数据中保存了一个文件的路径”c:\abc\abc.exe”,但是我想让他在前台列表中显示为”abc.exe”.首先我们先建一个IvalueConverter接口的类.class GetFileName : IValueConverter { //Convert方法用来将数据转换成我们想要的显示的格式 public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { Fi 阅读全文

posted @ 2011-08-12 08:56 work hard work smart 阅读(4870) 评论(0) 推荐(2)

摘要:1、LinearGradientBrush,RadialGradientBrush的样式说明 LinearGradientBrush 使用线性渐变绘制区域。线性渐变沿直线定义渐变。该直线的终点由线性渐变的 StartPoint 和 EndPoint 属性定义。LinearGradientBrush 画笔沿此直线绘制其 GradientStops。默认的线性渐变是沿对角方向进行的。默认情况下,线性渐变的 StartPoint 是被绘制区域的左上角 (0,0),其 EndPoint 是被绘制区域的右下角 (1,1)。所得渐变的颜色是沿着对角方向路径插入的。对角方向的线性渐变<!-- This 阅读全文

posted @ 2011-08-11 16:37 work hard work smart 阅读(527) 评论(0) 推荐(1)

摘要:使用Trigger1.当触发事件时的动画效果View Code 1 <Window x:Class="WpfApplication2.Window2" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 Title="Window2" Height="300" Width="100 阅读全文

posted @ 2011-08-07 11:15 work hard work smart 阅读(1095) 评论(0) 推荐(1)

摘要:1. 文件级资源:定义在资源字典的XAML文件中,添加“资源字典(Resource Dictionary)”类型的项文件名为Dictionary1.xamlDictionary1.xaml1 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"2 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">3 <SolidColorBrush Color="Re 阅读全文

posted @ 2011-07-30 19:54 work hard work smart 阅读(2783) 评论(1) 推荐(1)

摘要:WPF 获得文件夹路径可用FolderBrowserDialog类,添加System.Windows.Forms引用,并引用命名空间using System.Windows.Forms;View Code 1 private void button1_Click(object sender, RoutedEventArgs e)2 { 3 FolderBrowserDialog fbd = new FolderBrowserDialog(); 4 fbd.Description = "pls select a folder"; 5 if(fbd.ShowDialog() = 阅读全文

posted @ 2011-07-26 22:19 work hard work smart 阅读(5267) 评论(0) 推荐(0)

摘要:这里只介绍理论部分,在一个MVVM的简单例子这里有我写的一个下例子,非常简单。1、MVVM:模型-视图-视图模型(Model-View-ViewModel)MVVM设计模式基于MVC这种将UI和逻辑分离的结构思想。View:界面层;ViewModel:它是View的抽象,并将View的Command传递到Model;Mode:数据访问层2、在Silverlight或者WPF中采用MVVM的架构可以获得以下好处: 1. 项目可测试更高,从而可以执行单元测试 2. 将UI和业务的设计完全分开,View和UnitTest只是ViewModel的两个不同形式的消费者 3. 有助于我们区别并哪些是UI操 阅读全文

posted @ 2011-04-08 16:10 work hard work smart 阅读(6002) 评论(0) 推荐(2)