Как я могу сделать ЭТО: How to make WPF TreeView style as WinForms TreeView? в коде без XAML? Причина, по которой мне нужно это сделать, - это показать TreeView, который был указан в коде, так что XAML вообще отсутствует. Хотя я могу начать с XAML, я не знаю, как «добавить XAML» к чему-то, что не имеет его для начала. Я очень новичок в WPF, но уже много лет занимаюсь Winforms. TreeView состоит только из большой иерархии объектов TreeViewItem с значениями заголовка и тега.Добавить соединительные линии в WPF TreeView программно (без XAML)
ответ
Если вы посмотрите на ответ на статью, которую вы связаны, это детали стиля TreeViewItem, определенный как это: -
<Style x:Key="{x:Type TreeViewItem}" TargetType="{x:Type TreeViewItem}">
Когда х: Ключ устанавливается к целевому типу (или полностью исключить) , стиль должен стать стандартным для этого типа управления.
Если вы добавили стили, подробно описанные в ответе этой статьи в файл App.xaml, все элементы TreeViewItems в вашем приложении должны использовать этот стиль по умолчанию.
Если это не сработает, вы можете попробовать еще одну вещь. Изменить ключ стиль для строки, например: -
<Style x:Key="WindowsTreeViewItemStyle" TargetType="{x:Type TreeViewItem}">
Тогда в вашем коде, перебирать TreeViewItems в TreeView, и назначить стиль каждому программно: -
var style = (Style)Application.Current.FindResource("WindowsTreeViewItemStyle");
foreach (var treeViewItem in ...)
{
treeviewitem.Style = style;
}
(Использовать XAML этой статьи на свой страх и риск - ссылка на полный источник zip мертва, и то, что подробно описано в его ответе SO, может быть неполным!)
У меня нет файла App.xaml. У меня есть большое приложение с «крючками», где я могу указать сборки и классы для настройки. Я смог настроить его с помощью чистого кода. Я не знаю (или понимаю), как заставить соединение между XAML и кодом, поскольку я на самом деле не понимаю, как происходит это соединение «естественно». В вашем ответе я не знаю, где бы я поставил XAML, если у меня нет доступа к App.xaml. У меня есть набор скомпилированных сборников .Net, и некоторые из них являются моими, которые загружаются базовым приложением. – MikeGeek