2010-08-27 56 views
2

我不知道爲什麼我這麼做很麻煩,它不應該很難,但我必須是混合無能。有人可以給我一個圖像樣式的xaml,其中圖像處於不透明度60%,鼠標懸停淡入100時,鼠標退回到60%,onclick發光時間爲0.2秒。在xaml中創建圖像樣式

或者只是告訴我如何在混合?

謝謝

解決方案竟然是足夠簡單:

<Style x:Key="FadeImageButton" TargetType="Button"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="Button"> 
       <Grid x:Name="grid" Width="16" Height="16"> 
        <VisualStateManager.VisualStateGroups> 
         <VisualStateGroup x:Name="CommonStates"> 
          <VisualStateGroup.Transitions> 
           <VisualTransition GeneratedDuration="0:0:0.2"/> 
           <VisualTransition GeneratedDuration="0:0:0.2" To="Normal"/> 
           <VisualTransition GeneratedDuration="0:0:0.2" To="MouseOver"/> 
          </VisualStateGroup.Transitions> 
          <VisualState x:Name="Normal"> 
           <Storyboard> 
            <DoubleAnimation Duration="0" To="0.6" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="grid" d:IsOptimized="True"/> 
           </Storyboard> 
          </VisualState> 
          <VisualState x:Name="MouseOver"> 
           <Storyboard> 
            <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="grid" d:IsOptimized="True"/> 
           </Storyboard> 
          </VisualState> 
          <VisualState x:Name="Pressed"/> 
          <VisualState x:Name="Disabled"/> 
         </VisualStateGroup> 
         <VisualStateGroup x:Name="FocusStates"> 
          <VisualState x:Name="Focused"/> 
          <VisualState x:Name="Unfocused"/> 
         </VisualStateGroup> 
        </VisualStateManager.VisualStateGroups> 
        <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}"/> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

回答

2

你肯定不是無能。圖像沒有狀態,所以風格不是答案。

您可以爲圖像創建的唯一樣式是針對一個固定狀態,因此您可以添加60%的不透明度,但不包含其他任何內容。

的選項有:

  • 創建播放與ControlStoryboardAction行爲(上的MouseEnter和鼠標離開事件)EnterImage和LeaveImage 故事板。
  • 創建自定義行爲並將其附加到圖像。
  • 放置在具有狀態的另一個控制所述圖像(可能是按鈕)
  • 放置在與圖像屬性的用戶控制
  • 創建自定義控制

最簡單的是選項1中的圖像,但它需要附加幾個屬性到每個圖像,所以更多的拖拽和點擊來創作它們。

如果你讓我們知道你喜歡哪個選項,我可以發佈一個例子。

+0

這是一個我想應用於很多圖片的效果,點擊事件並不那麼重要,所以如果有一種簡單的方法將圖片鏈接到可創建「淡入淡出」的資源,淡入淡出h「」這將是理想的。根據我在你的文章中的理解,我認爲一個按鈕是最合乎邏輯的選擇,我會首先給自己一個先不要打擾你,然後再回到你身邊,謝謝你啓發我,我其實認爲國家可以應用於所有控件。 – Jakob 2010-08-27 18:49:28

+0

原來很簡單 - 謝謝 – Jakob 2010-08-27 19:22:53