Страницы

Поиск по вопросам

понедельник, 6 января 2020 г.

Как обратиться к элементу XAML с помощью C# в WPF приложении?

#c_sharp #wpf #xaml


Для примера есть 2 кнопки с разным контентом





Отличаются в кнопках только Path. 

Как можно реализовать программу так, чтобы не нужно было прописывать для каждого
Path своё имя, но можно было изменять Path.

Для примера через имя кнопки ToggleButton.Path.Fill = ...
    


Ответы

Ответ 1



Когда вы помещаете что-то внутрь тега Button - на самом деле вы устанавливаете этой кнопке свойство Content, соответственно через Content и можно попробовать добраться до нужного элемента. Это будет выглядеть примерно так: ((Path)((Grid)Button.Content).Children[0]).Fill = ... Но я вам не рекомендую так делать, ведь это, во-первых, не удобно и громоздко, во-вторых, не надежно, т.к. фактически дерево элементов может отличаться от того, что вы видите в разметке

Ответ 2



Я бы оформил ваш код в виде стиля. Заодно не нужно дублировать код с контентом: Использовать так:

Комментариев нет:

Отправить комментарий