<ListBox Background="Transparent" HorizontalAlignment="Left" Margin="30,0" BorderThickness="0" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ItemContainerStyle="{StaticResource RunwayListBoxItemStyle}" ItemsSource="{Binding SearchedResultRunwayCollection}"> <ListBox.ItemsPanel> <ItemsPanelTemplate> <WrapPanel IsItemsHost="True"/> </ItemsPanelTemplate> </ListBox.ItemsPanel> </ListBox>将上述XAML代码转换成C#代码
时间: 2024-02-10 09:10:49 浏览: 276
你可以使用以下的 C# 代码来构建这个 ListBox 控件:
```csharp
var listBox = new ListBox
{
Background = Brushes.Transparent,
HorizontalAlignment = HorizontalAlignment.Left,
Margin = new Thickness(30, 0, 0, 0),
BorderThickness = new Thickness(0),
ScrollViewer.HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled,
ItemContainerStyle = FindResource("RunwayListBoxItemStyle") as Style,
ItemsSource = SearchedResultRunwayCollection
};
var itemsPanelTemplate = new ItemsPanelTemplate(new FrameworkElementFactory(typeof(WrapPanel)));
itemsPanelTemplate.VisualTree.SetBinding(WrapPanel.IsItemsHostProperty, new Binding { Path = new PropertyPath("IsItemsHost") });
listBox.ItemsPanel = itemsPanelTemplate;
```
这段代码先创建了一个 ListBox 控件,然后设置了它的各种属性,包括绑定的数据源 `SearchedResultRunwayCollection`,以及使用的 ItemContainerStyle。接着,创建了一个 ItemsPanelTemplate 并将其设置为 ListBox 的 ItemsPanel,以实现 WrapPanel 布局。
阅读全文