我在窗口上有一些图像,如何将它们全部环绕以将图像设置为cover.jpg
?
public partial class MainWindow : Window
{
int score;
List<int> lst = new List<int>();
public MainWindow()
{
InitializeComponent();
foreach(Image img in Grid.)
}
}
答案 0 :(得分:0)
检查以下问题。
WPF: How do I loop through the all controls in a window?
你应该能够这样做:
public MainWindow()
{
InitializeComponent();
IEnumerable<Image> images = GetChildren(Grid).OfType<Image>();
if (images != null)
{
BitmapImage bi = new BitmapImage(new Uri("pic.png", UriKind.Relative));
foreach (Image image in images)
{
image.Source = bi;
}
}
}
public static IEnumerable<Visual> GetChildren(Visual parent, bool recurse = true)
{
if (parent != null)
{
int count = VisualTreeHelper.GetChildrenCount(parent);
for (int i = 0; i < count; i++)
{
// Retrieve child visual at specified index value.
var child = VisualTreeHelper.GetChild(parent, i) as Visual;
if (child != null)
{
yield return child;
if (recurse)
{
foreach (var grandChild in GetChildren(child, true))
{
yield return grandChild;
}
}
}
}
}
}
<Window x:Class="WpfApplication1.MainWindow"
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"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication1"
mc:Ignorable="d"
Title="MainWindow" Height="300" Width="300">
<Grid x:Name="Grid">
<Image ... />
....
答案 1 :(得分:0)
答案 2 :(得分:0)
我建议不要在后面的代码中执行此操作,而是使用MVVM原则并使用GridView / ListView,并将ItemSource绑定到ImagesList(您必须使其成为ObservableCollection而不是列表)。如果需要更多数据,请将图像封装在包含所需附加数据的类中。 通过这种方式,您不需要循环,并且所有事情都会发生在#34;它自己的&#34;