我只想更改ItemContainerStyle
第一级的项目。并为更深层次保留默认样式。有可能吗?
问问题
1287 次
2 回答
2
是的,您将创建一个自定义项,该自定义StyleSelector
项可以根据您决定的任何标准选择不同的样式。在您的情况下,您需要检查哪个ItemsControl
拥有容器(如在 a 中TreeView
,每个TreeViewItem
都是 a ItemsControl
,并拥有其子级)。
public class TreeViewFirstItemStyleSelector : StyleSelector
{
public override Style SelectStyle(object item, DependencyObject container)
{
var element = container as TreeViewItem;
if (element != null && ItemsControl.GetItemsOwner(element) is TreeView)
return element.FindResource("customStyle") as Style;
return null;
}
}
然后将它设置在 TreeView 的 ItemContainerStyleSelector 属性上。
于 2013-01-09T17:57:01.203 回答
1
Style
Trigger
如果它们是第一个元素,则应该使用s 和测试项目。这段代码只是一个想法:
<Style.Triggers>
<Trigger Property="IsFirst" Value="True">
<Setter Property="Color" Value="Red" />
</Trigger>
于 2013-01-09T17:52:18.313 回答