привет есть код.хочу пройтись по элементам грида а именно по Image
foreach ( var item in mainGrid.Children)
{
if (item.GetType() == Image) { }
}
питаюсь так но что не выходит как правилиьно
if (item.Equals(typeof(Image)))
{
}
вроде так норм но как теперь у Image убрать картинку которая задана как Source
то есть я думаю убрать источник так
oneImage.Source = null;
но как это в цикле организовать
Можете использовать класс VisualTreeHelper для работы с визуальным деревом.
Метод GetChild
позволяет получить детей указанного элемента, ну а там уже делаете с детьми все, что пожелаете.
xaml:
<Grid x:Name="grid1">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Image Grid.Row="0" Source="image/1.png"/>
<Image Grid.Row="1" Source="image/2.png" />
<Button Grid.Row="3" Content="Clear Images" Click="Button_Click" />
</Grid>
code-behind:
private void Button_Click(object sender, RoutedEventArgs e)
{
int childrenCount = VisualTreeHelper.GetChildrenCount(grid1);
for (int i = 0; i < childrenCount; i++)
{
var current = VisualTreeHelper.GetChild(grid1, i);
var image = current as Image;
if (image != null)
{
image.Source = null;
}
}
}
Ну или просто:
foreach (var gridChild in grid1.Children)
{
var image = gridChild as Image;
if (image != null)
{
image.Source = null;
}
}
Чтобы получить прямо все-все Image
, которые находятся в гриде, независимо от уровня вложенности, можно воспользоваться этим методом:
public static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T : DependencyObject
{
if (depObj != null)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
if (child != null && child is T)
{
yield return (T)child;
}
foreach (T childOfChild in FindVisualChildren<T>(child))
{
yield return childOfChild;
}
}
}
}
Код нажатия на кнопку будет выглядеть следующим образом:
private void Button_Click(object sender, RoutedEventArgs e)
{
foreach (Image image in FindVisualChildren<Image>(grid1))
{
image.Source = null;
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Не могу перевсти данный код с C# в C++ или C++/CLI Цель в заголовке
Допустим есть запрос на обновление из учебника:
Пытаюсь сделать выборку по id в своем проекте по документации (стоит laravel 53)
Пытаюсь с основного домена (domainru) отправить cUrl запрос на поддомен (s1