Itemscontrol 修改控件模板
Itemscontrol Modify control template
我想修改 itemscontrol 模板,而不是修改每个项目的显示方式,而是修改实际的 itemscontrol
<ItemsControl
ItemsSource="{Binding RB}" Grid.Row="1"
ItemTemplate="{StaticResource myBTemplate}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel></StackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
我有这个并且工作正常,我得到了项目的堆栈面板行为和每个项目的自定义数据模板,但我找不到修改容器的方法。假设将标题放入我的项目列表中,而不是在项目控制之外这样做。
如果我设置了 ControlTemplate 项目,则不再显示。
(此 Itemscontrol 是上层 DataTemplate 的一部分)
在 Clemens 发表评论后,我更多地搜索了 Items presenter 而不是 ControlTemplate。
发现我只需要 在 ControlTemplate 中的某处添加项目展示器,没有特殊标签,只是尊重树格式。
<ItemsControl
ItemsSource="{Binding RB}" Grid.Row="1"
ItemTemplate="{StaticResource myBTemplate}">
<ItemsControl.Template>
<ControlTemplate TargetType="{x:Type ItemsControl}">
<StackPanel>
<Grid Margin="5" Height="50">
<Ellipse Stroke="DarkBlue" StrokeThickness="2">
<Ellipse.Fill>
<RadialGradientBrush Center="0.3,0.2" RadiusX="0.5" RadiusY="0.5">
<GradientStop Color="Azure" Offset="0.1" />
<GradientStop Color="CornflowerBlue" Offset="1.1" />
</RadialGradientBrush>
</Ellipse.Fill>
</Ellipse>
</Grid>
<StackPanel >
<ItemsPresenter Margin="2,0,0,0"/>
</StackPanel>
</StackPanel>
</ControlTemplate>
</ItemsControl.Template>
</ItemsControl>
我想修改 itemscontrol 模板,而不是修改每个项目的显示方式,而是修改实际的 itemscontrol
<ItemsControl
ItemsSource="{Binding RB}" Grid.Row="1"
ItemTemplate="{StaticResource myBTemplate}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel></StackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
我有这个并且工作正常,我得到了项目的堆栈面板行为和每个项目的自定义数据模板,但我找不到修改容器的方法。假设将标题放入我的项目列表中,而不是在项目控制之外这样做。 如果我设置了 ControlTemplate 项目,则不再显示。 (此 Itemscontrol 是上层 DataTemplate 的一部分)
在 Clemens 发表评论后,我更多地搜索了 Items presenter 而不是 ControlTemplate。
发现我只需要 在 ControlTemplate 中的某处添加项目展示器,没有特殊标签,只是尊重树格式。
<ItemsControl
ItemsSource="{Binding RB}" Grid.Row="1"
ItemTemplate="{StaticResource myBTemplate}">
<ItemsControl.Template>
<ControlTemplate TargetType="{x:Type ItemsControl}">
<StackPanel>
<Grid Margin="5" Height="50">
<Ellipse Stroke="DarkBlue" StrokeThickness="2">
<Ellipse.Fill>
<RadialGradientBrush Center="0.3,0.2" RadiusX="0.5" RadiusY="0.5">
<GradientStop Color="Azure" Offset="0.1" />
<GradientStop Color="CornflowerBlue" Offset="1.1" />
</RadialGradientBrush>
</Ellipse.Fill>
</Ellipse>
</Grid>
<StackPanel >
<ItemsPresenter Margin="2,0,0,0"/>
</StackPanel>
</StackPanel>
</ControlTemplate>
</ItemsControl.Template>
</ItemsControl>