So ändern Sie die Grenze Hintergrundfarbe in einer ItemContainerStyle programmgesteuert?
Ich habe ein TreeView und einem eigenen Stil und eigene ItemContainerStyle. In der ItemContainerStyle habe ich eine Grenze mit dem Namen "SelectedRectangle". Das will ich jetzt ändern Sie die Hintergrundfarbe dieses "SelectedRectangle" mit diesem Code (ich habe es gefunden im Internet):
Border brd = (Border)lstDbTree.Template.FindName("SelectedRectangle", lstDbTree); //dosnt work - returns 'null'
brd.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#7B7A7C")); //Null Pointer Exception
Ich weiß nicht, wie ich Zugang zu den ItemContainerStyle XAML, um es zu manipulieren programmgesteuert.
Code:
Shell.xaml
<TreeView DockPanel.Dock="Bottom" Name="lstDbTree"
...
ItemContainerStyle="{StaticResource DbTreeItemStyle}"
...
/>
CoreStyles.xaml
<Style TargetType="TreeViewItem" x:Key="DbTreeItemStyle">
<Setters...>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeViewItem">
...
<Border x:Name="SelectedRectangle" BorderBrush="#44ffffff" BorderThickness="1" Grid.Column="1" CornerRadius="1" IsHitTestVisible="False" Opacity="0" Background="#555355"/>
...
</ControlTemplate>
</Setter.Value>
</Style
Shell.xaml.cs
private void ColorB_OnClick(object sender, RoutedEventArgs e)
{
Border brd = (Border)lstDbTree.Template.FindName("SelectedRectangle", lstDbTree); //dosnt work
brd.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#7B7A7C"));
}
, Was ich tun will
Danken ist eine Menge für jede Hilfe.
InformationsquelleAutor Dirk Schiller | 2013-08-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konnte ich dieses Problem lösen mit der ItemContainerGenerator:
InformationsquelleAutor Dirk Schiller