标签: XAML

WPF绑定日期时间类型数据时的格式化方法

在WPF中通过XAML设置DateTime类型数值绑定时,需要注意以下两点: 不要绑定给控件的Content属性,因为它是Object类型的,字符串格式化选项对其无效,其始终以默认的方式显示,格式化只对String类型属性有效,所以通常不要使用Label控件,而应使用TextBlock控件。 一定要在绑定语句中增加转换语言设置,如“ConverterCulture=zh-CN”,否则长日期时间将会显示为英文。 以下为代码范例: <TextBlock Grid.Column=”1″ HorizontalAlignment=”Left” TextWrapping=”Wrap” Text=”{Binding 创建时间, StringFormat={0:f},ConverterCulture=zh-CN}” VerticalAlignment=”Center” Grid.Row=”1″ Margin=”4,0,0,0″ FontSize=”16″/> <TextBlock Grid.Column=”1″ HorizontalAlignment=”Left” TextWrapp...

更多

WF快速生成设计器XAML代码的方法

工作流WF的设计器XAML代码写起来很蹩脚,基本上每次都得从之前的其他设计器xaml文件中复制代码过来再修改,这样很麻烦也很容易出错,这里介绍一个使用RegeX3实现快速转换属性为设计器XAML代码的方法。 首先新建一个WorkFlow代码活动: 然后进行编写,编写后假设我们的属性代码是这样的: [RequiredArgument] public InArgument<Bitmap> 处理目标 { get; set; } [RequiredArgument] public InArgument<Int32> 最小宽度 { get; set; } [RequiredArgument] public InArgument<Int32> 最小高度 { get; set; } 注意:不要使用int、float这类的C#关键字做类型,因为其在XAML中不受支持,要使用它们的真实类型名称Int32、Single等。 将其全部复制,打开RegeX3,粘贴入,然后执行如下的多步替换: 第一步 表达式 [RequiredArgument]s*rn 替换为 * 第二步 ...

更多

WPF命中测试示例(二)——几何区域命中测试

接续上次的命中测试,这次来做几何区域测试示例。   示例 首先新建一个WPF项目,在主界面中拖入一个按钮控件,并修改代码中的以下高亮位置: 当前设计视图界面如下: 接下来,转到窗体的“Window_Loaded”事件处理函数,编写函数代码: private void Window_Loaded(object sender, RoutedEventArgs e) { Random r = new Random(); for (int i = 0; i < 800; i++) { var o = new Ellipse(); o.HorizontalAlignment = HorizontalAlignment.Left; o.VerticalAlignment = VerticalAlignment.Top; o.Margin=new Thickness(){ Left = r.Next((int)this.Width),Top = r.Next((int)this.Height)}; o.Height = o.Width = r.Next(10); o.Fill = n...

更多

WPF命中测试示例(一)——坐标点命中测试

命中测试也可被称为碰撞测试,在WPF中使用VisualTreeHelper.HitTest()方法实现,该方法用于获取给定的一个坐标点或几何形状内存在的视觉元素,此次我们的示例是坐标点命中测试。   示例 首先使用Microsoft Expression Blend 3创建一个新的WPF应用程序项目: 在窗体上随意绘制几个图形,这里分别使用了:Rectangle、Ellipse、Path元素。 在右下角绘制一个ListBox控件,命名为l1: 在视觉树面板中选中Window: 在属性面板中单击事件类别,然后再MouseUp事件右侧空白处双击以添加事件处理:   至此,前台XAML代码如下: <Window xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation” xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml” xmlns:d=”http://schemas.microsoft.com/expression/blend/2008...

更多

WPF中不规则窗体与WebBrowser控件的兼容问题解决办法

引言 这几天受委托开发一个网络电视项目,要求初步先使用内嵌网页形式实现视频播放和选单,以后再考虑将网页中的所有功能整合进桌面程序。 播放器普遍都要有个看起来比较酷的外观,于是我就给设计了个不规则形状的带透明边框的外观,如下图: 但这个设计整合到WPF中时,却遇到了一个头疼的BUG: 只要设置窗体为AllowsTransparency=”True” WindowStyle=”None”,内嵌的WebBrowser就无法显示了,但它还不是真的没有了,里面加载的视频还会正常播放、出声,甚至用鼠标去点网页内容还能正常交互,就是啥也看不到。   解决办法 那么我是如何解决的呢? 经过一系列搜索,我找到了这样的代码: 前台XAML文件:http://www.google.cn/codesearch/p?hl=zh-CN#ihfHhUg5N2k/trunk/vs2010/meta/Glu/Helper/WebBrowserOverlay.xaml&q=WebBrowserOnTransparentWindow&d=5 后台CS...

更多

在后台代码中引入XAML的方法

本文将介绍三种方法用于在后台代码中动态加载XAML,其中有两种方法是加载已存在的XAML文件,一种方法是将包含XAML代码的字符串转换为WPF的对象。 这些是我在编写RegeX时获得的经验,它们将会给WPF程序带来更多的灵活性。 一、在资源字典中载入项目内嵌资源中的XAML文件 Application.Current.Resources.MergedDictionaries.Insert(0, Application.LoadComponent(new Uri(“abc/Index.xaml”, UriKind.Relative)) as ResourceDictionary); 此方法仅限于载入项目中包含的XAML资源文件,测试中载入项目以外的资源会提示找不到文件。 二、在资源字典中载入外部XAML文件 Application.Current.Resources.MergedDictionaries.Insert(0, XamlReader.Load(new FileStream(“C:index.xaml”, FileMode.Ope...

更多

赠给大家的工具:RegeX

一份礼物 RegeX是我的新作,它是一款可视化的正则表达式辅助工具,使用WPF技术制作。 我将其定位为免费软件,奉送给大家使用:) 简介及下载页 如果你想获得本软件的更新通知的话,可以在此留言附上你的Email,我会在更新的时候发信告知^^       一篇教程 为了帮助大家更好的理解RegeX的作用,我写了一篇RegeX正则表达式应用教程。 教程页     一个请求 我不知道你是否喜欢它,反正我自己当然是非常喜欢了,我期待有人能帮我将其翻译为英语或其它语言,来让更多人使用它。 相信我,翻译的工作量很小,如果你有很好的语言基础的话,我想你一定能在两小时内完成。 翻译后你可以在软件里署名,以让那些使用者记住他们的英雄:) 这是一个台湾繁体中文版的署名范例: 我想你注意到了后面我在处理的内容了,是的,那些就是你要编辑的内容。 你可以在软件的Language文件夹内找到一些语言包,其中包括: zh-hk 香港繁体中文 zh-mo 澳门繁体中文 zh-tw 台湾繁体中文 zh-sg 新加坡简体中文 你可以完善并提交给我这些语言的修缮版本,也可以...

更多

RegeX —— 可视化正则表达式替换器

RegeX是一款正则表达式辅助程序,它通过高亮匹配及替换内容使整个流程可视化,帮助用户更好地理解和使用正则表达式这一强力工具。 RegeX定位为免费软件,任何人都可无限制的使用它。 它的前身叫做SearchRex,此前我曾在一个小圈子里推广过它,很受好评。 我自己就是它最最忠实的铁杆用户:它帮我逐步学习和掌握了正则表达式;它帮我完成了很多文字处理工作;每次关于正则表达式编程的测试工作也都是依靠它来完成的。 经过一段时间的WPF技术学习后,我决定用WPF技术对它进行一次升级,于是就有了RegeX:   下载:点击下载 版本:2.1.1.5  查看更新 内置语言:简体中文(中国大陆、新加坡)、繁体中文(香港、澳门、台湾)、英文(美国、英国、加拿大、澳大利亚) 所需运行环境:.Net 3.5 SP1 所需字体:微软雅黑   使用教程   程序界面: 常规运行界面:http://images.cnblogs.com/cnblogs_com/skyd/RegeX_2.1.1.5_4.png 最大化状态界面:http://www.cnblogs.com/images/...

更多

WPF新作—RegeX发布预告

这两天都在忙乎这个呢,这是一个正则表达式的替换器,是我此前的一个作品的升级版,使用WPF技术重新制作。 话说WPF的RichTextBox还真是很复杂,让我头痛了好久,中间有一次还打算放弃了,后来又心血来潮重新做了起来~~ 预计近几天内就会发布,准备定位为免费软件,届时送给大家用:) 分享或转载本博客站点内的所有原创内容时,都必须遵循此协议: 姓名标示-非商业性-相同方式分享 4.0 国际 (CC BY-NC-SA 4.0) 同时必须附加指向本文页面或本博客首页的超链接。 除此之外的转载、分享方式都必须征得本博客作者的授权,否则将会诉诸法律。

更多

用VisualBrush定制复杂的按钮样式

VisualBrush是一种比较特殊的笔刷,它的功能仍然是用来给元素填充图案,但它的内容却可以是各种控件。 你可以将其理解为一个普通的容器,但在其内部的所有控件都会失去交互能力,而只保留显示能力。 你可以通过本例学习到关于VisualBrush的使用方法,以及复杂样式的定制技巧。 首先来看一下我们将要实现的效果的4倍放大图: 这个效果的特点如下: 文字部分有白色泛光效果,使之看起来就像是发光体。 按钮下半部分有椭圆形的放射渐变,但注意其上下并不对称。 接下来就开工制作,首先新建一个WPF应用程序,胡乱放上一些按钮用作测试: 在Window的资源中指定按钮的样式: 可以看到其基本结构非常简单,就是一个Border内装载着内容,而核心的样式其实都是在Border的Background属性里面定义的: 是的,在这里我们就是用到了VisualBrush,在他内部装载了一个拥有均分的两行的Grid,Grid的属性设置如下: ClipToBounds=“True” Height=”{TemplateBinding Height}“ Width=&#8...

更多