2014-12-29 41 views
2

我有一個頁面。將自定義樣式應用於頁面上的所有按鈕

當一個按鈕被按下時,我希望它達到50%的透明度。

我曾經有按鈕的默認藍色背景顯示時按下,我已經通過在我的頁面中使用VisualState(通過刪除默認樣式按鈕按下)刪除。

我現在想要應用透明度樣式。

我修改了我的標記,以這樣的:

<VisualState x:Name="Pressed"> 
    <Storyboard> 
     <PointerDownThemeAnimation Storyboard.TargetName="Grid"/> 
      <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity"> 
       <DiscreteObjectKeyFrame KeyTime="0" Value="50"></DiscreteObjectKeyFrame> 
      </ObjectAnimationUsingKeyFrames> 
    </Storyboard> 
</VisualState> 

,這是我的按鈕中的一個:

<Button Name="btnDel" Grid.Row="4" Grid.Column="2" Width="75" Height="75" HorizontalAlignment="Center" > 
    <Button.Background> 
     <ImageBrush ImageSource="ms-appx:///Images/del.png" Stretch="Uniform"/> 
    </Button.Background> 
</Button> 

,我得到的錯誤是:未指定

動畫目標。

+0

你'ObjectAnimationUsingKeyFrames'缺乏'Storyboard.TargetName' - 你改變*透明度*,但你沒有指定哪個元素的。 – Romasz

+0

嗨羅馬茲,感謝可憐我:)。這對我來說都是新東西,並且略顯自閉症,我發現閱讀MSDN幫助文件並不理想。如果我想要影響頁面上的所有圖像,我會假定我沒有指定元素名稱?顯然,我錯了,但我只是不知道如何完成我想要的。不透明度是否足夠公平地使用?沒有智能感知,所以我不知道。 –

回答

1

您將需要使用DoubleAnimation動畫的GridOpacity,這樣的 -

<VisualState x:Name="Pressed"> 
    <Storyboard> 
     <PointerDownThemeAnimation Storyboard.TargetName="Grid"/> 
     <DoubleAnimation Duration="0" To="0.5" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="Grid"/> 
    </Storyboard> 
</VisualState> 
+0

嗨,謝謝你的回答。我會在哪裏放置這一行標記?謝謝 –

+0

請看我更新的答案。 –

+0

嗨,是的,那就是我放的地方。但不起作用。按下按鈕時不受影響? –

相關問題