2016-09-13 3 views
0

Как я могу сделать ЭТО: How to make WPF TreeView style as WinForms TreeView? в коде без XAML? Причина, по которой мне нужно это сделать, - это показать TreeView, который был указан в коде, так что XAML вообще отсутствует. Хотя я могу начать с XAML, я не знаю, как «добавить XAML» к чему-то, что не имеет его для начала. Я очень новичок в WPF, но уже много лет занимаюсь Winforms. TreeView состоит только из большой иерархии объектов TreeViewItem с значениями заголовка и тега.Добавить соединительные линии в WPF TreeView программно (без XAML)

ответ

0

Если вы посмотрите на ответ на статью, которую вы связаны, это детали стиля 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, может быть неполным!)

+0

У меня нет файла App.xaml. У меня есть большое приложение с «крючками», где я могу указать сборки и классы для настройки. Я смог настроить его с помощью чистого кода. Я не знаю (или понимаю), как заставить соединение между XAML и кодом, поскольку я на самом деле не понимаю, как происходит это соединение «естественно». В вашем ответе я не знаю, где бы я поставил XAML, если у меня нет доступа к App.xaml. У меня есть набор скомпилированных сборников .Net, и некоторые из них являются моими, которые загружаются базовым приложением. – MikeGeek

Смежные вопросы