我正在学习C#和XAML来构建Windows应用程序.我想创建一个以图像为背景的按钮.但是当将鼠标悬停在按钮上时,按钮的背景应更改为另一个"突出显示"的图像.我试图将背景图像添加到Resources.resx中.我不得不使用xaml样式创建一个自定义按钮来摆脱wpf按钮的默认高亮效果.
我从SO上找到的一些代码创建了一个自定义按钮.代码是(在新的资源字典中):
<!-- This style is used for buttons, to remove the WPF default 'animated' mouse over effect -->
<Style x:Key="StartMenuButtons" TargetType="Button">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="Margin" Value="5"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Name="border"
BorderThickness="0"
Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<!-- UPDATE THE BUTTON BACKGROUND -->
<Setter Property="Background" Value="WHAT GOES HERE" TargetName="border"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
我放了什么,以便背景更改为另一个图像,无论是在我的resources.resx或其他位置?(不确定将图像放在何处访问它).我搜索了SO,但我找到的解决方案并不完全是我正在处理的问题.如果这是一个重复的问题,我道歉.
摘要:
如何在XAML中更改鼠标上按钮的背景图像?我在哪里放置图像以便可以在触发器代码中访问它?
更新 这是我作为触发操作,但图像不更新.我确保将图像构建操作设置为资源并将其放在名为Resources的文件夹中.
代码是:
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background">
<Setter.Value> …
Run Code Online (Sandbox Code Playgroud) 我有一个在Visual Studio 2012的Blend + Sketchflow预览中创建的项目.这是一个简单的项目,因为我第一次学习C#和WPF.我有两个窗户.一个简单的启动屏幕,带有一个显示另一个屏幕的按钮.另一个屏幕有4个按钮,可在随机顺序动画序列中更改颜色.
我的问题是设计视图被禁用.我不能再在设计视图中打开任何XAML或编辑任何故事板等.我能想到的唯一不同的是我在Visual Studio 2012中添加了一个类文件.在项目刷新后,设计视图消失了,我只能看到是它的xml版本.
如果有人能告诉我解决方案我会很感激,因为我搜索了谷歌和stackoverflow并没有找到答案.我是语言和VS/Blend的新手,所以这可能是一个简单的修复,我不知道.提前致谢!