C# WPF 如何实现控件数组?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# WPF 如何实现控件数组?相关的知识,希望对你有一定的参考价值。
我想用 C# 做一个图片浏览器,图片一开始是以 5×5 的矩阵摆放的,全部用 Image 控件放在主窗体里,然后当鼠标点击到任意一张图片时,其他图片变为不可见的同时,这张图片放大到全屏。如果用 25 个单独的 Image 控件到时候写代码不好写,有没有一种用控件数组的方法实现呢?也就是将这 25 个 Image 控件合成为一个数组,到时候响应事件时只需要区分数组的下标就可以实现相应的动作。
picturebox[] pixArray = new picturebox[25]
for (int i = 0; i < 25; i++)
pixArray[i] = new picturebox();
pixArray[i].Tag = i;
....
直接定义一个 Image 控件类型的数组,通过动态添加或者静态提前写好的方式,将25个控件对象放入数组中,到时候直接通过数组下标来控制就可以了,加入数组时,在PictureBox.Tag中保存数组下标,这样在事件响应的时候就能区分是那个下标的控件被点击了.
补充:C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。
参考技术A List<UIElement> list; 参考技术B 你这还是vb的思维,正确的做法应该是定义ObservableCollection<image>,然后绑定到界面的listbox,还需要定义ItemTemplate和ItemContainerStyle。 参考技术C 用数组只能在代码里去布局,这样很麻烦的。建议你做一个自定义控件
用一个5*5的Grid,然后初始化此控件时,在每个格子里加载一个image。
然后给这个自定义控件加个SetIamge 和 GetImage 的属性即可。
还有,WPF不需要你去定义图片的数组,ImageList,这个类是有的。 参考技术D PictureBox[] pixArray = new PictureBox[25];
for (int i = 0; i < 25; i++)
pixArray[i] = new PictureBox();
pixArray[i].Tag = i;
....
你直接定义一个 Image 控件类型的数组,通过动态添加或者静态提前写好的方式,将25个控件对象放入数组中,到时候你直接通过数组下标来控制就可以了,加入数组时,你在PictureBox.Tag中保存数组下标,这样你在事件响应的时候就能区分是那个下标的控件被点击了.本回答被提问者采纳
C# wpf 想让控件随着窗口大小变化而变化
wpf 想让控件随着窗口大小变化而变化
就像winfrom里面的Dock=Fill 一样的效果
请问前台代码怎样实现呢?
这个行不通了
请问是那个属性呢? Height 和 Width 属性 不能直接设置 Stretch
这个还是没看懂 那里有 设置了控件跟随改变而改变的属性
参考技术A wpf里面有一个DockPanel,用这个控件。 参考技术B 用expression blend设计wpf前台啊,feihonggang888 说的可行追问看得不懂 。。
追答expression blend是wpf前台界面设计工具,是专业wpf的UI界面设计工具,可以直接生成xaml。你使用那个可以实现很多你手写很费力的效果。包括触发器等。
Button1 是不是你想要的效果
不是哦 我想要的是 比如说 tabcontrol 控件随这窗口的改变而改变 宽度和高度一样
追答
应该是这样的吧,Button1填充在第一表格内,还不行可以给我发邮件,275652960@163.com
以上是关于C# WPF 如何实现控件数组?的主要内容,如果未能解决你的问题,请参考以下文章
C#中如何实现WPF调用Winform中用户自定义的控件呢?