Я хочу установить два цветовых фона в пользовательское древовидное представление (wpf). Вы можете установить эту приманку в DataGrid. Я не мог понять, как это сделать для дерева.Как установить 2 цвет фона TreeView (WPF)
Я также хочу, чтобы выбор элемента был таким большим, как ячейка.
<TreeView Grid.Row="2" Name="TreeView" DataContext="{Binding Path=TreeModel}" ItemsSource="{Binding TreeItems}" SelectedItemChanged="TreeView_OnSelectedItemChanged">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:NodeViewModel}" ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<Label Content="{Binding NameNode}"/>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.Resources>
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Add" Command="{Binding AddMachinePart_Command}"/>
<MenuItem Header="Remove" Command="{Binding RemoveMachinePart_Command}" IsEnabled="{Binding IsModule}"/>
<MenuItem Header="Edit" Command="{Binding EditMachinePart_Command}" IsEnabled="{Binding IsModule}"/>
<Separator></Separator>
<MenuItem Header="Copy path" Command="{Binding CopyPath_Command}" IsEnabled="{Binding IsModule}"></MenuItem>
</ContextMenu>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold" />
</Trigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
Edit: При использовании раствора из https://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.alternationindex(v=vs.110).aspx предложил @jschroedl
Было бы идеально, чтобы быть столь же большим, как вид дерева сетки, как показанном на рисунке ниже:
Возможный дубликат [WPF: чередующиеся цвета в ItemsControl?] (Http://stackoverflow.com/questions/4404539/wpf-alternating-colors-on-a-itemscontrol) – MikeT
Вы хотите, чтобы узлы дерева чередовали цвет фона? – leetibbett
@leetibbett да. –