读书人

WPF button小疑点

发布时间: 2012-07-28 12:25:13 作者: rapoo

WPF button小问题
随便拽一个button进工程里,想实现button 在IsMouseOver的时候,底色不变,请问如何搞,我在属性触发器里添加了相应的代码,设置Background为透明,但是button上面还是罩了一层颜色。请大家解惑:
样式代码:

C# code
<Style x:Key="BtnExample" TargetType="Button">        <Setter Property="Background">            <Setter.Value>                <ImageBrush ImageSource="/EnvrimentConfig;component/Images/get.ico" />            </Setter.Value>                       </Setter>        <Style.Triggers>                   <Trigger Property="Button.IsMouseOver" Value="True">                <Setter Property="Button.Background" Value="Transparent" >                </Setter>            </Trigger>        </Style.Triggers>    </Style>

XAML下代码:
C# code
 <Button  Height="96" Style="{StaticResource BtnExample}"  HorizontalAlignment="Left" Margin="170,12,0,0" Name="button3" VerticalAlignment="Top" Width="90" Grid.RowSpan="2">



[解决办法]
http://social.msdn.microsoft.com/Forums/zh-CN/wpfzhchs/thread/abff631a-9d6e-407e-8b78-90ea186c1e7b
[解决办法]
你在xp就会下发现,你说的那种情况不会存在的
因为你用了随主题
进入 Expression Blend 4
然后创建一个最原始的button 就行了。
或者对系统自带button控件点右键选择修改模板,
把里面不需要的动画效果都去掉
[解决办法]
这个需要重写Button Template
参考http://msdn.microsoft.com/en-us/library/ms753328(v=vs.85).aspx
这个是默认的template
[解决办法]
win7的Button是由ButtonChrome和ContentPresenter控件组成,ButtonChrome 提供标准按钮外观,而ContentPresenter显示按钮的内容,你可以把ButtonChrome替换成一个矩形,用来充当按钮的主体,修改矩形的触发器就可以达到你说背景不变的效果。至于360的效果你可以再添加一个大一点的矩形,把透明度调成0,然后再触发器里改变透明度就是你说的鼠标悬浮时,半透明矩形在上面。

http://blog.csdn.net/cmis7645/article/details/7562833

读书人网 >C#

热点推荐