2010-11-11 39 views
2

假设我有喜欢WPF /样式:模板元素设置属性值

<Style x:Key="NotificationItemTemplate" TargetType="{x:Type ListBoxItem}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type ListBoxItem}"> 
       <DockPanel LastChildFill="False"> 
        <DockPanel.Background> 
         <LinearGradientBrush> 
          <GradientStop Offset="0" Color="#FF565656" /> <!-- How to change color values --> 
          <GradientStop Offset="1" Color="#FF353535" /> 
         </LinearGradientBrush> 
        </DockPanel.Background> 
        ... 
       </DockPanel> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

如何设置为标记以上不同颜色的渐变色的颜色值的风格,说鼠标悬停,我知道我使用触发器,但我该如何引用该颜色值?

回答

2

不幸的是,我不确定您是否可以为单次渐变停止。您可能遇到触发改变整个背景刷:

<Style TargetType="{x:Type ListBoxItem}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type ListBoxItem}"> 
       <DockPanel LastChildFill="False" x:Name="dock"> 
        <DockPanel.Background> 
         <LinearGradientBrush> 
          <GradientStop Offset="0" Color="#FF565656" /> 
          <!-- How to change color values --> 
          <GradientStop Offset="1" Color="#FF353535" /> 
         </LinearGradientBrush> 
        </DockPanel.Background> 
        <ContentPresenter /> 
       </DockPanel> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter TargetName="dock" Property="Background"> 
          <Setter.Value> 
           <LinearGradientBrush> 
            <GradientStop Offset="0" Color="#00CDFFFF" /> 
            <!-- How to change color values --> 
            <GradientStop Offset="1" Color="#FF343465" /> 
           </LinearGradientBrush> 
          </Setter.Value> 
         </Setter> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
+0

有人只是这给了一个赞成票,回头看看在这个问题上,是可以做的另一件事情就是创建一个“颜色”的资源,可以重新使用的渐变停止。这样,如果你只有一个不同的渐变停止。常见的渐变停止都可以从单个资源管理,而不是在多个位置/触发器中维护。 – Scott 2013-06-03 16:50:40