这是一个非常烦人的工件,我注意到WPF,我很好奇我可能做错了什么,因为我正在做的似乎是WPF XAML中的简单代码:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ExampleShapes.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="400" Height="400">
<Grid x:Name="LayoutRoot">
<Button Margin="50,50,50,50" Content="I pulse when clicked Why?">
<Button.Background>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FF0C0B0B" Offset="1"/>
<GradientStop Color="#FFBF5656"/>
</LinearGradientBrush>
</Button.Background>
</Button>
</Grid>
Run Code Online (Sandbox Code Playgroud)
似乎.NET中有一些默认值,我不知道MouseOver的事件和我不想要的Click.我不介意当鼠标悬停时它会将渐变的颜色更改为默认值,但是当我将其删除时它会改回来.然而,即使在为"CLICK"事件(不是示例)应用基础C#代码之前,它也会假定在我指定的渐变和默认值之间进行"脉冲"行为.简单的颜色也是如此.是什么赋予了?
有关更多信息,我正在使用Visual Studio 2010的Windows 7 64位盒和使用.NET 4.0 for VS2010的Expression Blend 3进行设计,因为它是较旧的副本而且它们都是这样做的.是否有一种简单的方法可以更改默认行为,还是必须为按钮设置新的用户模板?
非常感谢任何帮助!
它似乎与Button的Focused风格有关.我猜测默认聚焦样式在正常和鼠标悬停背景之间交替,这导致"脉冲"行为.
单击该按钮可将其设置为聚焦,但您也可以通过简单地按Tab键来实现相同的效果.
编辑
进一步研究这一点似乎是任何具有输入焦点的元素的Aero主题的默认值.您可以设置按钮Focusable="False",但是您不能选中按钮或按Enter键(仍然可以点击它),我个人讨厌无法使用键盘导航的应用程序.
为避免单击时闪烁,可以在单击事件结束时将焦点设置为另一个控件,但是当您选中该按钮时仍会出现效果.
| 归档时间: |
|
| 查看次数: |
3488 次 |
| 最近记录: |