2016-09-13 1 views
0

Wie kann ich Folgendes tun: How to make WPF TreeView style as WinForms TreeView? in Code, ohne XAML? Der Grund, warum ich dies tun muss, ist, dass das TreeView, das ich erhalten habe, im Code definiert ist, also gibt es überhaupt kein XAML. Während ich mit XAML anfangen kann, weiß ich nicht, wie man XAML zu etwas hinzufügt, das es nicht zu Beginn hat. Ich bin sehr neu in WPF, mache aber Winforms seit Jahren. Die TreeView besteht nur aus einer großen Hierarchie von TreeViewItem-Objekten mit Header- und Tag-Werten.Hinzufügen von Verbindungslinien zu WPF TreeView Programmatisch (ohne XAML)

Antwort

0

Wenn man sich die Antwort auf die Artikel, den Sie verknüpft sehen, Details es einen TreeViewItem Stil wie folgt definiert: -

<Style x:Key="{x:Type TreeViewItem}" TargetType="{x:Type TreeViewItem}"> 

Wenn die x: Key in den Zieltyp festgelegt ist (oder ganz weggelassen) , sollte der Stil der Anwendungsstandard für diesen Steuerelementtyp werden.

Wenn Sie die Stile in der Antwort dieses Artikels zu Ihrer App.xaml-Datei hinzufügen, sollten alle TreeViewItems in Ihrer Anwendung diesen Standard-Stil übernehmen.

Wenn dies nicht funktioniert, können Sie eine weitere Sache versuchen. Ändern Sie den Schlüssel Stil in einen String, zB: -

<Style x:Key="WindowsTreeViewItemStyle" TargetType="{x:Type TreeViewItem}"> 

Dann in Ihrem Code, durchlaufen die TreeViewItems im TreeView, und weisen jedem man den Stil programmatisch: -

var style = (Style)Application.Current.FindResource("WindowsTreeViewItemStyle"); 

foreach (var treeViewItem in ...) 
{ 
    treeviewitem.Style = style; 
} 

(Verwenden Der XAML dieses Artikels ist auf eigene Gefahr - der Link zur vollständigen Quell-ZIP ist tot, und was in seiner SO-Antwort ausführlich beschrieben wird, ist möglicherweise unvollständig!)

+0

Ich habe keine App.xaml-Datei. Was ich habe, ist eine große App mit 'Haken', wo ich Baugruppen und Klassen für die Anpassung angeben kann. Ich konnte es mit reinem Code anpassen. Ich weiß nicht (oder verstehe), wie man die Verbindung zwischen XAML und Code erzwingt, da ich nicht wirklich verstehe, wie diese Verbindung "natürlich" auftritt. In Ihrer Antwort weiß ich nicht, wo ich den XAML setzen würde, wenn ich keinen Zugriff auf App.xaml hätte. Was ich habe, ist eine Reihe von kompilierten .Net-Assemblies und einige von ihnen sind meine eigenen, die von der Baseline-Anwendung geladen werden. – MikeGeek

Verwandte Themen