首先,你不能像這樣改變Button的內容來源。您必須重新定義Button的模板,並且圖像的名稱與PART_Image類似,因此您可以從VisualState訪問它。
現在,如果您希望能夠直接在XAML中指定兩個背景,而不是在模板中,則需要從Button實現一個自定義的UserControl inherting。
但是,如果你不這樣做,你可以簡單地使用ImageBrush來繪製背景。
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="ButtonBackground">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<ImageBrush ImageSource="Pressed.png" />
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
然後,同樣,如果您還想要一個圖像的非按下狀態,更改按鈕定義。
<Button Style="{StaticResource CustomButton}">
<Button.Background>
<ImageBrush ImageSource="NotPressed.png" />
</Button.Background>
<Button.Content>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Text="hello" />
</StackPanel>
</Button.Content>
</Button>
這與您最後一個問題有什麼不同? http://stackoverflow.com/questions/6870091/windows-phone-7-button-states –
有一點,他現在問如何做模板,而不是VisualStates如何工作。 –