网站建设费用怎么算,乐清网站建设乐清网站设计,深圳营销型网站费用,小吃培训网站源码原文:WPF遍历当前容器中某种控件的方法版权声明#xff1a;本文为博主原创文章#xff0c;未经博主允许不得转载。 https://blog.csdn.net/m0_37591671/article/details/79528845 WPF遍历当前容器中某种控件的方法 WPF遍历当前容器中某种控件的方法1.目的#xff1a;2.实现思…原文:WPF遍历当前容器中某种控件的方法 版权声明本文为博主原创文章未经博主允许不得转载。 https://blog.csdn.net/m0_37591671/article/details/79528845 WPF遍历当前容器中某种控件的方法 WPF遍历当前容器中某种控件的方法1.目的2.实现思路 1.目的 在设计界面的时候遇到了这样一个问题一个窗口中有六个按钮我希望点击某一个按钮的时候该按钮能够高亮显示即更换该按钮的背景图片点击第二个的时候第二个高亮显示其他按钮还是显示为普通按钮颜色如图 2.实现思路 2.1 在每一次点击的时候遍历当前容器中所有Button但是我们这里只需要下面六个然后根据按钮的名称来依次给按钮背景图片赋予相应的路径即还原到普通普片的路径在给点击的按钮背景图片赋予高亮图片的路径。 2.2 还原到普通普片的路径 //还原到普通普片的路径public static void BackToUsedPicture(UIElement uIElement){//遍历当前容器中所有ButtonListButton btnListFindChirldHelper.FindVisualChildButton(uIElement);foreach (var item in btnList){Image img new Image();if (item.Name Weather_btn){img.Source new BitmapImage(new Uri(../../Images/MonitorData/weatherBUTTON.jpg, UriKind.Relative)); }else if (item.Name Temperature_btn){img.Source new BitmapImage(new Uri(../../Images/MonitorData/temperatureBUTTON.jpg, UriKind.Relative));}else if (item.Name Vibration_btn){img.Source new BitmapImage(new Uri(../../Images/MonitorData/virbrationBUTTON.jpg, UriKind.Relative));}else if (item.Name Stress_btn){img.Source new BitmapImage(new Uri(../../Images/MonitorData/stressBUTTON.jpg, UriKind.Relative));}else if (item.Name Deformation_btn){img.Source new BitmapImage(new Uri(../../Images/MonitorData/DeformationBUTTON.jpg, UriKind.Relative));}else if (item.Name Pedestria_btn){img.Source new BitmapImage(new Uri(../../Images/MonitorData/peopleBUTTON.jpg, UriKind.Relative));}item.Content img;} } 2.3 寻找当前容器中某种控件的 方法 public static class FindChirldHelper{public static ListT FindVisualChildT(DependencyObject obj) where T : DependencyObject{try{ListT TList new ListT { };for (int i 0; i VisualTreeHelper.GetChildrenCount(obj); i){DependencyObject child VisualTreeHelper.GetChild(obj, i);if (child ! null child is T){TList.Add((T)child);ListT childOfChildren FindVisualChildT(child);if (childOfChildren ! null){TList.AddRange(childOfChildren);}}else{ListT childOfChildren FindVisualChildT(child);if (childOfChildren ! null){TList.AddRange(childOfChildren);}}}return TList;}catch (Exception ee){MessageBox.Show(ee.Message);return null;}}} 3.3 上端使用 private void Weather_btn_Click(object sender, RoutedEventArgs e){ ChangeButtonToLight((Button)sender);}public void ChangeButtonToLight(Button button){ChangeButtonImage.BackToUsedPicture(this);Image img new Image();if (button.Name Weather_btn){img.Source new BitmapImage(new Uri(../../Images/MonitorData/weatherBUTTONLight.png, UriKind.Relative));}else if (button.Name Temperature_btn){img.Source new BitmapImage(new Uri(../../images/MonitorData/temperatureBUTTONLight.png, UriKind.Relative));}else if (button.Name Vibration_btn){img.Source new BitmapImage(new Uri(../../Images/MonitorData/virbrationBUTTON.jpg, UriKind.Relative));}else if (button.Name Stress_btn){img.Source new BitmapImage(new Uri(../../Images/MonitorData/stressBUTTON.jpg, UriKind.Relative));}else if (button.Name Deformation_btn){img.Source new BitmapImage(new Uri(../../Images/MonitorData/DeformationBUTTON.jpg, UriKind.Relative));}else if (button.Name Pedestria_btn){img.Source new BitmapImage(new Uri(../../Images/MonitorData/peopleBUTTON.jpg, UriKind.Relative));}button.Content img;}