我有一个自定义按钮,如下所示,我想更改处于按下状态的文本颜色和图像源。
<Button Background="#FFC17C7C" Style="{StaticResource CustomButton}">
<StackPanel HorizontalAlignment="Center"
VerticalAlignment="Center" Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Text="hello" />
<Image Source="Background.png" />
</StackPanel>
</Button>
如果你能提供一个简单的例子或有用的链接来解决这类问题,我会很感激。
答案 0 :(得分:0)
首先,您不能像这样更改Button内容的来源。您必须重新定义Button的模板,并将图像命名为PART_Image,以便您可以从VisualState访问它。
现在,如果您希望能够直接在XAML中而不是在模板中指定两个背景,则需要从Button实现自定义UserControl。
但是如果你不这样做,你可以简单地使用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>