2013-02-09 75 views
1

所有綁定控件當使用彩色像綁定刷新上動畫

Background="{Binding Design.LeftBarColor}" 

結合和執行的動畫像

<DoubleAnimation From="1" To="0.5" Storyboard.TargetName="appName" 
    Storyboard.TargetProperty="(Label.Background).(SolidColorBrush.Opacity)" 
    Duration="0:0:0.25"/> 

所有綁定到「Design.LeftBarColor」控件被刷新。但我只想刷新標籤的(appName)背景色。我只是試圖改變綁定模式,但這沒有奏效。我究竟做錯了什麼?

回答

2

而不是直接使用Design.LeftBarColor刷了標籤的背景,你可以創建爲每個標籤的新背景刷,並且綁定新刷的顏色來Design.LeftBarColor.Color

<Label Name="appName" ...> 
    <Label.Background> 
     <SolidColorBrush Color="{Binding Design.LeftBarColor.Color}"/> 
    </Label.Background> 
    ... 
</Label> 
+0

與Rene的回答幾乎相同: 不錯的主意,但設置UIElements不透明度不會影響標籤背景顏色 - 我不想更改標籤的文本不透明度 – 2013-02-09 13:02:48

+0

謝謝,這就是它的工作方式! – 2013-02-09 13:50:12

1

不知道如果我對你正在做的事情是正確的。我想說,如果你想淡出對動畫的控制,不要針對畫筆的不透明度。將邊框控件放在標籤的頂部,並修改邊框的不透明度。

示例代碼在這裏:

<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Window.Resources> 
     <SolidColorBrush x:Key="MyBrush" Color="Red"/> 
    </Window.Resources> 
    <Grid> 
     <Border Name="Container"> 
      <Label Background="{StaticResource MyBrush}"> 
       <Label.Triggers> 
        <EventTrigger RoutedEvent="Rectangle.Loaded"> 
         <BeginStoryboard> 
          <Storyboard> 
           <DoubleAnimation 
      Storyboard.TargetName="Container" 
      Storyboard.TargetProperty="Opacity" 
      From="1.0" To="0.0" Duration="0:0:5" 
      AutoReverse="True" RepeatBehavior="Forever" /> 
          </Storyboard> 
         </BeginStoryboard> 
        </EventTrigger> 
       </Label.Triggers> 
       Lorem ipsum 
      </Label> 
     </Border> 
    </Grid> 
</Window> 
+0

不錯的想法,但設置邊框不透明不會影響標籤背景顏色 - 我不想更改標籤的文字不透明度。 – 2013-02-09 13:01:40