谁做过VirtualizingWrapPanel?
以下是摘要:ListBox的默认的ItemsPanel容器是VirtualizingStackPanel,从名字可以看出是支持虚拟化的,但是WrapPanel不支持虚拟化,它继承自Panel,所以当你的ListBox的ItemsPanel的容器替换成WrapPanel后也就失去了虚拟化的能力,当数据变得很多时就会非常的卡那么如何解决呢? 1) 你自己写个VirtualizingWrapPanel,我认为这是王道,目前正在查资料尝试,看能不能写出来 2) 用取巧的方法,使一行容纳多列数据,仍然使用VirtualizingStackPanel作为容器,那么也就是能保证虚拟化了这里我们介绍第二种方式那么如何使一行容纳多个数据呢?答案是在ListBoxItem中嵌套ListBox/ItemsControl当时经过一番Google后发现已经有人解决了该问题,呃,抱歉时间有点长了,原文找不到了,这里将他的代码给出,我自己写的就不献丑啦其原理是将一个长列表,切分成若干个长度为列数的小列表,下面是实现代码·····························
wpf 怎么让页面首次加载时不给文本框添加样式,而是在输入后添加
要想添加控件,容器是必须要有的,几大布局控件都可以 Grid Canvas UniformGrid DockPanel StackPanel WrapPanel 下面就以WrapPanel 为例进行演示
先上代码
[csharp] view plain copy
///
/// 添加控件的方法
///
///
Pannel类的实例
///
UIElement 实例
public static void DynamicAdd(Panel Container, UIElement Control)
{
Container.Children.Add(Control);
}
private void buttonAdd_Click(object sender, RoutedEventArgs e)
{
Button btn = new Button();
btn.Width = 200;
btn.Height = 70;
//设置按钮样式使用此种方法必须将资源文件引用到当前页面
btn.Style = Resources["NoticeButton"] as Style;
//此种方法也可以设置样式
//获取App.xaml中的样式个人更喜欢这种
//Style style = (Style)this.FindResource("NoticeButton");
//为按钮设置样式
// btn.Style = style;
//将btn添加到ufg
DynamicAdd(wrp, btn);
}
这里是后台的代码很简单只是在设置样式的时候要注意一下用哪种方法
前台xaml代码主要是对资源的引用
[csharp] view plain copy
顶
Button 的文字怎么竖向显示
重写控件模板或者是样式就可以了,根据要显示的文字的数量,结合文字在添加按钮时指定或是在运行中可以进行更改等需求,可以考虑用多种方式实现:
1、用一个的TextBlock或者是WrapPanel,通过限制宽度和自动换行的方式来实现竖排;
2、用多个TextBlock来做,每一个显示一个字,绑定到要显示文字的列表来实现;
应该不难,没有测试,暂时想到这些,希望能对你有帮助,有疑问请追问或是Hi
wrap与surround区别
wrap[英][r?p] [美][r?p]
vt.包;缠绕;用…包裹(或包扎、覆盖等);掩护
n.膝毯,披肩,围巾,围脖,头巾,罩衫,外套,大衣;包装纸;〈俚〉机密
vi.缠绕,盘绕(通常与 over, around 等连用);包上,裹上;穿上(衣服等)
surround[英][s??raund] [美][s??ra?nd]
vt.包围,围绕
n.(物品的)边;外围物
简单的说,wrap是XX把东西包住,surround是东西被XX包住,两种不一样的动作呢!
WRAP认证是什么?
WRAP认证又叫工厂审核,俗称查厂,简单地理解就是检查工厂。
即按照一定的标准对工厂进行审核或评估。
WRAP认证标准要求具体如下:
1.童工:工厂不可雇用童工,未成年员工不得从事强体力劳动及其他可能造成其身体伤害的岗位,不得上夜班。
2.符合法律法规的要求:供货商工厂最低限度应遵守所处国家的劳动法以及环境保护的相关法规。
3.强迫劳工:客户严禁工厂雇佣强迫劳工,具体包括强迫工人加班,使用劳役工、监狱工以及扣押工人的身份证件作为要挟强制工人劳动。
4.工作时间:要求周工时不得超过60小时,每周至少休息一天。
5.工资福利:员工的薪资是否低于当地最低薪资水平?员工加班是否有加班工资?加班工资是否符合法律要求(正常加班为1.5倍,周末加班为2倍,法定节假日加班为3倍)?工资的发放是否准时?工厂是否为员工购买保险?
6.健康与安全:工厂是否存在严重的健康安全问题,具体包括消防设施是否齐全,生产区域的通风、照明是否良好,工厂是否为三合一厂房或二合一厂房,员工宿舍的入住人数是否符合要求,员工宿舍的卫生、消防、安全是否符合要求?
如何在wpf中进行面向对象编程
首先说一下学习WPF的基础知识:
1) 要会一门.NET所支持的编程语言。
例如C#。
2) 会一点“标准通用标记语言”:WPF窗体程序使用的XAML语言,也属于“标准通用标记语言”的一个分支。
如果以前接触过XML、HTML、XHTML、ASP.NET之类的“标准通用标记语言”,对于学习是有所帮助的。
3) 有一定的WinForm或ASP.NET经验,主要是对控件事件的处理要有所了解。
4) 拥有良好的面向对象的思想:在WPF中,经常要灵活运用各种继承关系、多态、重载等。
5) DataBinding要有所了解:Binding是WPF的一大亮点。
6) 对设计模式要有一定的了解:当然是越深入越好了,在实际项目中,各种设计模式经常交融使用。
二、 本系列使用到的工具:
1) 开发环境:Windows 7中文版
2) 开发工具:Visual Studio 2013中文版
3) 数据库:本机SQL Server 2012 Express
4) ORM工具:Entity Framework(实体框架)。
Entity Framework与NHibernate比较:
1)Entity Framework封装性更好,增、删、改、查询更方便
2) Entity Framework使用更方便的Linq to Entity查询,延迟加载(只有在需要时才加载,只加载需要的数据)。
三、WPF开发基础
第一、在装好以上所说的工具之后,打开Visual Studio 2013,选择“菜单—》文件—》新建—》项目”。
如下图。
第二、在“新建项目”对话框中选择“WPF应用程序”,修改名称为WpfApp1,然后点击“确定”按钮,便成功创建了一个“WPF应用程序”。
新创建的项目所引用的公共类库如下。
如下图。
(“WPF应用程序”会在“引用”里面自动添加下图中所示的 PresentationCore、PresentationFramework、WindowsBase三大核心程序集)。
第三、WpfApp1项目的生成的文件结构。
如下图。
第四、在App.xaml中的“StartupUri”属性可以指定项目运行时的启动窗体。
如下图中“StartupUri=”MainWindow.xaml””,还可以定义我们需要的系统资源以及引入程序集等。
如下图。
第五、在MainWindow.xaml的设计窗体中我们可以修改Title。
还可以设置MainWindow的属性和添加事件。
完成了这些设置以后,我们就可以对窗体添加内容了,如下图。
我在这个窗体中添加了一个ListView、两个WrapPanel、两个Button等。
第六、在WPF的xmal文件中还可以添加如下资源。
如下图。
四、小结
WPF应用程序的创建除了使用Visual Studio之外,还可以使用Expression Blend。
谈到学习WPF的开发,就必须要学习MVVM,学习MVVM,就要首先了解MVC、MVP等概念。
我自己做过WinForm、ASP.NET等使用各类.NET技术的项目,虽然微软的技术一直在进步、变化,但是最基本的东西都没有变,例如数据库的访问,文件的读写、日志处理,程序中异常的处理、报表、打印、性能的优化、友好的界面。