我正在使用一个背景为图像的按钮。我的问题是,每当我将鼠标指向按钮或单击按钮时,图像就会消失。
简而言之,我想设置悬停图像,按下按钮图像。
我的按钮代码是
<Button Height="47" VerticalAlignment="Top" Width="47" Foreground="{x:Null}" BorderBrush="{x:Null}" BorderThickness="0" ToolTipService.ToolTip="Emoticons" TabIndex="4" Margin="230,0,0,0">
<Button.Background>
<ImageBrush ImageSource="ms-appx:/Assets/Emoticons/emo (3).png" Stretch="UniformToFill"/>
</Button.Background>
</Button>
答案 0 :(得分:3)
您遇到的问题是您设置了按钮的背景而不是内容。与背景属性不同,视觉状态的内容不变。
尝试更多类似的内容:
<Button Width="300" Height="400">
<Image Source="Assets/Logo.scale-100.png" Stretch="UniformToFill"/>
</Button>
如果您想要更好地控制悬停和mousedown外观,可以使用找到的here样式覆盖Pressed
和PointerOver
视觉状态。
视觉状态也解释了为什么你的背景消失了。查看PointerOver
的视觉状态:
<VisualState x:Name="PointerOver">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="Border"
Storyboard.TargetProperty="Background">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ButtonPointerOverBackgroundThemeBrush}" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
Storyboard.TargetProperty="Foreground">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ButtonPointerOverForegroundThemeBrush}" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
请注意,Background
属性已设置为主题资源ButtonPointerOverBackgroundThemeBrush
的动画。当控件处于PointerOver
状态时,这将覆盖您设置背景的任何内容。