你可以在一组元素上声明性地设置一个属性吗?

问题描述:

如果我有一个控件中的元素集合(例如自定义ItemsControl),我可以通过资源字典中的样式在该控件的所有子元素上设置属性。例如,我想在某个触发器上设置所有这些元素的可见性。这可能是装饰性的吗?你可以在一组元素上声明性地设置一个属性吗?

干杯 Ĵ

当然,我们可以使用ItemsControl.ItemContainerStyle上一个ItemsControl或任何导出的控制来设置风格所含的元素。

<Style x:Key="customStyle"> 
    <Setter Property="Control.Opacity" 
      Value=".5" /> 
    <Style.Triggers> 
     <Trigger Property="Control.IsMouseOver" 
       Value="True"> 
      <Setter Property="Control.Opacity" 
        Value="1" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

<ItemsControl ItemContainerStyle="{StaticResource customStyle}"> 
    <ListBoxItem >Item 1</ListBoxItem> 
    <sys:String>Automaticly gets Wrapped</sys:String> 
    <ListBoxItem>Item 3</ListBoxItem> 
</ItemsControl>