2017-06-01 51 views
-2

我正在尋找一種方法來設置ItemsControl中項目的對齊方式,以便它們不是從上到下(默認)而是從左到右定位。在ItemsControl中水平對齊項目(無xaml)

我想有一個可以很容易地設置一個屬性,像

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

但似乎不是這種情況。在XAML中有無數的例子來實現這一點(通常他們使用樣式或模板或類似的東西),但我在純C#代碼中找不到任何例子。我不知道如何將xaml語句轉換爲C#代碼。

任何人都可以提示嗎?

+0

突然想到嘗試使用屬性方向如下所示:[https://stackoverflow.com/questions/1052342/itemscontrol-wit h-horizo​​ntal-orienta tion](https://stackoverflow.com/questions/1052342/itemscontrol-wit%E2 %80%8C%E2%80%8Bh-horizo​​ntal-orienta%E2%80%8C%E2%80%8Btion) – macieqqq

+1

這些鏈接可能有所幫助:https://social.msdn.microsoft.com/Forums/vstudio/en -US/f02db50e-52f6-45d5-b245-6e3ded37bb6e/PROG rammatically-set-itemcontrols-itemspaneltemplate?forum = wpf&https://stackoverflow.com/questions/8398000/how-to-set-itemspaneltemplate-to-a-dynamically-created-grid-in-code-behind – PaulF

回答

3

突然想到嘗試使用屬性Orientation喜歡在這裏:ItemsControl with horizontal orientation H-水平廣州澳凌TA重刑

下面是一個例子:

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;