上饶网站seo,wordpress 作者id,公司网站域名无法解析,背景图在线制作概述在Winform中从后台添加控件相对比较容易#xff0c;但是在WPF中#xff0c;我们知道界面是通过XAML编写的#xff0c;如何把后台写好的控件动态添加到前台呢#xff1f;本节举例介绍这个问题。这里要用到UniformGrid布局#xff0c;UniformGrid 是一种横向的网格分割、… 概述 在Winform中从后台添加控件相对比较容易但是在WPF中我们知道界面是通过XAML编写的如何把后台写好的控件动态添加到前台呢本节举例介绍这个问题。 这里要用到UniformGrid布局UniformGrid 是一种横向的网格分割、纵向的网格分割分别是均等的分割的布局类型.项目介绍 -. 这里界面添加一个ComboBox用来下拉选择图片数量 -. 添加一个button用来执行图片显示dispaly下方是图片显示区域代码设计-.前台XAML代码Griddxlc:LayoutControl OrientationVerticaldxlc:LayoutGroup OrientationHorizontal ViewGroupBoxdxlc:LayoutGroup.Headerdxlc:LayoutItem LabelAction Background#FF004486 ForegroundWhite//dxlc:LayoutGroup.Headerdxlc:LayoutItem LabelImage Count ComboBox SelectedIndex{Binding ComSelectedIndex}ComboBoxItem2/ComboBoxItemComboBoxItem4/ComboBoxItemComboBoxItem6/ComboBoxItem/ComboBox/dxlc:LayoutItemdxlc:LayoutItem Width110dx:SimpleButton ContentImage Dispaly BackgroundLightGray cal:Message.Attach[Event Click][btnAdd_Click($source,$eventArgs)] //dxlc:LayoutItem/dxlc:LayoutGroupdxlc:LayoutGroup OrientationHorizontal ViewGroupBoxdxlc:LayoutGroup.Headerdxlc:LayoutItem LabelDispaly Background#FF004486 ForegroundWhite//dxlc:LayoutGroup.HeaderUniformGrid cal:Message.Attach[Event Loaded][UniformGrid_Loaded($source,$eventArgs)] //dxlc:LayoutGroup/dxlc:LayoutControl/Grid前台代码比较简单只要关注下UniformGrid控件绑定了Loaded事件。-.后台代码:[AddINotifyPropertyChangedInterface]public class UniformGridViewModel : Screen, IViewModel{public int ComSelectedIndex { get; set; }public UniformGrid UniformGrid;public string[] ImageFullPath;public void btnAdd_Click(object sender, RoutedEventArgs e){UniformGrid.Children.Clear();UniformGrid.Columns 2;var count 0;switch(ComSelectedIndex){case 0:count 2;break;case 1:count 4; break;case 2:count 6; break;default: break;}for (int i 0; i count; i){Image image new Image();image.Source LoadImageFreeze(ImageFullPath[i]);image.MouseLeftButtonUp ImageClick;image.Name Path.GetFileNameWithoutExtension(ImageFullPath[i]);image.Margin new Thickness(5);UniformGrid.Children.Add(image);}}public void ImageClick(object sender, MouseButtonEventArgs e){var name (sender as Image).Name;MessageBox.Show($当前选择的图片名称{name});}public void UniformGrid_Loaded(object sender, RoutedEventArgs e){UniformGrid (UniformGrid)sender;}public UniformGridViewModel(){DisplayName UniformGrid;string imagePath Path.Combine( AppDomain.CurrentDomain.BaseDirectory, Images);ImageFullPath Directory.GetFiles(imagePath, *.png);}public static BitmapImage LoadImageFreeze(string imagePath){try{var bitmap new BitmapImage();if (File.Exists(imagePath)){bitmap.BeginInit();bitmap.CacheOption BitmapCacheOption.OnLoad;using (Stream ms new MemoryStream(File.ReadAllBytes(imagePath))){bitmap.StreamSource ms;bitmap.EndInit();bitmap.Freeze();}}return bitmap;}catch (Exception){return null;}}}介绍①LoadImageFreeze从路径下加载图片并转换为BitmapImage②UniformGrid_Loaded获取UniformGrid对象③ImageFullPath从项目bin下获取图片文件并读取到这个数组④btnAdd_Click界面button点击事件这里是核心的代码主要就是申城图片然后设定好 UniformGrid的行列以及其他属性后添加到控件里面 UniformGrid.Children.Add(image);⑤ImageClick点击后显示图片的名称.运行演示源码百度网盘链接https://pan.baidu.com/s/1iu2MovTGDoUd_HsTnI7mAA提取码6666技术群添加小编微信并备注进群小编微信mm1552923 公众号dotNet编程大全