2017-06-01 3 views
-2

Ich suche nach einer Möglichkeit, die Ausrichtung der Elemente in einer ItemsControl so einzustellen, dass sie nicht von oben nach unten (Standard) positioniert sind, sondern von links nach rechts.Objekte in ItemsControl horizontal ausrichten (no xaml)

Ich dachte, es ist eine Eigenschaft, die leicht eingestellt werden kann, wie

ItemsControl crtl = new ItemsControl; 
... 
ctrl.ContentAlignment = ContentAlignment.Horizontal; // does not exist 

Aber es scheint dies nicht der Fall ist. Es gibt unzählige Beispiele in XAML, um dies zu erreichen (normalerweise verwenden sie Styles oder Templates oder Ähnliches), aber ich habe in reinem C# -Code keinen gefunden. Und ich weiß auch nicht, wie man die XAML-Anweisungen in C# -Code konvertiert.

Kann jemand einen Hinweis geben?

+0

Let's versuchen, Verwenden Sie die Eigenschaft Orientation wie hier: [https://stackoverflow.com/questions/1052342/itemscontrol-wit h-horizontal-orientation] (https://stackoverflow.com/questions/1052342/itemscontrol-wit%E2 % 80% 8C% E2% 80% 8Bh-horizontal-orienta% E2% 80% 8C% E2% 80% 8Btion) – macieqqq

+1

Diese Links können helfen: https://social.msdn.microsoft.com/Forums/vstudio/en -US/f02db50e-52f6-45d5-b245-6e3ded37bb6e/prog ramatisch-set-itemcontrols-itemspaneltemplate? forum = wpf & https://stackoverflow.com/questions/8398000/how-to-set-itemspaneltemplate-to-a-dynamically-created-grid-in-code-behind – PaulF

Antwort

3

Let`s versuchen Eigenschaft Orientierung zu verwenden wie in hier: ItemsControl with horizontal orientation h-horizontal-Orien ta tion

Hier ist ein Beispiel:

var itemsControl = new ItemsControl();  
var factoryPanel = new FrameworkElementFactory(typeof(StackPanel)); 
factoryPanel.SetValue(Panel.IsItemsHostProperty, true); 

factoryPanel.SetValue(StackPanel.OrientationProperty, Orientation.Horizontal);  
var template = new ItemsPanelTemplate {VisualTree = factoryPanel};  
itemsControl.ItemsPanel = template; 
Verwandte Themen