wpf 按钮请教

问题描述

高手们,用expression制作个性化按钮时,怎么才能让按钮上显示的图片是由用户指定的图片?

解决方案

解决方案二:
大神们现身哇
解决方案三:
<Window.Resources><StyleTargetType="Button"><!--<SetterProperty="Background"><Setter.Value><LinearGradientBrushStartPoint="0.5,0"EndPoint="0.5,1"><GradientStopColor="AliceBlue"Offset="0"/><GradientStopColor="AntiqueWhite"Offset="1"/></LinearGradientBrush></Setter.Value></Setter>--><SetterProperty="Template"><Setter.Value><ControlTemplateTargetType="Button"><Grid><EllipseFill="{TemplateBindingBackground}"Stroke="Gray"/><ContentPresenterMargin="5"HorizontalAlignment="Center"VerticalAlignment="Center"/></Grid></ControlTemplate></Setter.Value></Setter><SetterProperty="Background"><Setter.Value><ImageBrushImageSource="D:\TestWpfApplication2WpfApplication2Resources11.jpg"Stretch="UniformToFill"></ImageBrush><!--<LinearGradientBrushStartPoint="0.5,0"EndPoint="0.5,1"><GradientStopColor="AliceBlue"Offset="0"/><GradientStopColor="AntiqueWhite"Offset="1"/></LinearGradientBrush>--></Setter.Value></Setter><!--<Style.Triggers><TriggerProperty="IsMouseOver"Value="true"><SetterProperty="Background"Value="AntiqueWhite"/><SetterProperty="FontSize"Value="13"/></Trigger><TriggerProperty="IsKeyboardFocused"Value="True"><SetterProperty="FocusVisualStyle"Value="{x:Null}"/></Trigger></Style.Triggers>--></Style></Window.Resources><Grid><ButtonHeight="40"Margin="128,20,33,0"Name="button1"VerticalAlignment="Top">Button</Button><!--<EllipseMargin="13,90,94,0"Name="ellipse1"Stroke="Black"Height="30"VerticalAlignment="Top"><Ellipse.Fill><ImageBrushImageSource="D:\TestWpfApplication2WpfApplication2Resources11.jpg"></ImageBrush></Ellipse.Fill></Ellipse>--></Grid></Window>

解决方案四:
自己写一个Button。1.自定义ImageButton,该按钮拥有一个代表图片路径的Image依赖属性。publicclassImageButton:Button{publicstringImage{get{return(string)GetValue(ImageProperty);}set{SetValue(ImageProperty,value);}}publicstaticreadonlyDependencyPropertyImageProperty=DependencyProperty.Register("Image",typeof(string),typeof(ImageButton));}

2.为这个ImageButton写一个模板,在这个模板里根据你的要求放一个Image控件,将Image控件绑定到ImageButton的Image属性上,这样就能实现高复用性的图片按钮了。<StyleTargetType="control:ImageButton"><SetterProperty="SnapsToDevicePixels"Value="true"/><SetterProperty="OverridesDefaultStyle"Value="true"/><SetterProperty="FocusVisualStyle"Value="{x:Null}"/><SetterProperty="Cursor"Value="Hand"/><SetterProperty="Template"><Setter.Value><ControlTemplateTargetType="control:ImageButton"><Grid><ImageName="Image"Source="{BindingImage,RelativeSource={RelativeSourceTemplatedParent}}"><Image.BitmapEffect><BlurBitmapEffectRadius="0"/></Image.BitmapEffect></Image><BorderName="Mask"Background="Black"Opacity="0"><Border.OpacityMask><ImageBrushImageSource="{BindingImage,RelativeSource={RelativeSourceTemplatedParent}}"/></Border.OpacityMask></Border></Grid><ControlTemplate.Triggers><TriggerProperty="IsPressed"Value="True"><Trigger.EnterActions><BeginStoryboard><Storyboard><DoubleAnimationTo="8"Duration="0:0:0.1"Storyboard.TargetName="Image"Storyboard.TargetProperty="(Image.BitmapEffect).(BlurBitmapEffect.Radius)"/></Storyboard></BeginStoryboard></Trigger.EnterActions><Trigger.ExitActions><BeginStoryboard><Storyboard><DoubleAnimationDuration="0:0:0.1"Storyboard.TargetName="Image"Storyboard.TargetProperty="(Image.BitmapEffect).(BlurBitmapEffect.Radius)"/></Storyboard></BeginStoryboard></Trigger.ExitActions></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style>

时间: 2024-08-01 16:06:03

wpf 按钮请教的相关文章

代码-wpf按钮如何实现文字的辉光效果?

问题描述 wpf按钮如何实现文字的辉光效果? 我是希望当把鼠标移到按钮时,按钮的文字就能显示出辉光效果,希望大神能给出实现的代码和必要的注释,谢谢 解决方案 WPF实现下雪效果 ...WPF-WPF BitmapEffect (按钮凹凸效果)WPF拖拽效果实现

wpf c#-请教:WPF中 子类继承父类的INotifyPropertyChanged的问题

问题描述 请教:WPF中 子类继承父类的INotifyPropertyChanged的问题 父类实现了INotifyPropertyChanged接口,子类数据改变时如何驱动父类的INotifyPropertyChanged? 父类实现接口方法: public event PropertyChangedEventHandler PropertyChanged; /// <summary> /// 数据驱动 /// </summary> /// <param name=&quo

WINFORM/WPF 问题请教

问题描述 winform作为主窗体,它调用了WPF作的窗体,winform如何才能响应WPF的上的按钮响应呢?也就是在WPF上点击按钮时,在WINFORM中作相应的更改.有大神知道么? 解决方案 解决方案二:据我所知,目前还不可以进行WPF窗体与Winform创建间的调用.不过他们之间可以进行嵌入控件的互操作.解决方案三:如果是两个进程之间的事情,可以考虑进行通信,或者WindowsApi吧解决方案四:写一个controller类,用来接收和响应2个窗体事件,其实也就是采用MVC的基本思想就可以

【WPF】请教listbox里面嵌套可折叠的listbox,要怎么实现?

问题描述 如上面2个图,截的是360的检测界面,交互逻辑是点击长条(可能有多条,这里只有一条)能够自由的折叠和展开里面的listbox内容.我想了下大概有以下思路:1)<listbox></listbox>listboxitem用datatemplate<datatemplate><stackpannel垂直排列><stackpannel水平排列><textblock/><textblock/>//这两个textblock

WPF界面设计技巧(3)—实现不规则动画按钮

原文:WPF界面设计技巧(3)-实现不规则动画按钮    发布了定义WPF按钮的教程后,有朋友问能否实现不规则形状的按钮,今天我们就来讲一下不规则按钮的制作.   不规则按钮的做法实际上和先前我们做不规则窗体的方法差不多,只是为按钮弄个不是那么方方正正的背景而已.   我们这次沿用自定义窗体时的设计图形,设计一个动态的不规则按钮,在这个示例中我们要将先前设计的整个图形作为按钮,并让外围的圆环始终围绕中心圆形旋转,在鼠标移入时,还要产生颜色变化及发光效果.   首先用 Microsoft Expr

浅谈WPF中的Command事件绑定

在项目中使用Command绑定能够使我们的代码更加的符合MVVM模式.不了解的同学可能不清楚,只有继承自ButtonBase类的元素才可以直接绑定Command(Button.CheckBox.RadioButton等) <Button Content="Normal" Command="{Binding NormalEventCommand}" ></Button> 如果我们要处理Label或者其他的一些控件,那么只能在走事件: <L

[WPF疑难]如何禁用窗口上的关闭按钮

哈哈,主要是调用RemoveMenu这个API,所以没什么好说的,直接"干货"吧: namespace VersatileMessageBoxLib { using System; using System.Windows.Interop; using System.Runtime.InteropServices; public class CloseButton { [DllImport("user32", CharSet = CharSet.Ansi, SetL

winjs模板里面定义了按钮无法使用

问题描述 winjs模板里面定义了按钮无法使用 我在template里面定义了一些按钮也写了方法进去为什么不能用??? 这是写在html里的 1 <div id="lstViewMenuDetails" data-win-control="WinJS.UI.ListView" data-win-options="{itemTemplate: select('#mediumListIconTextTemplate'),layout: {type: Wi

XAML

原文 http://www.cnblogs.com/free722/archive/2011/11/06/2238073.html XAML定义 XAML是一种相对简单.通用的声明式编程语言,它适合于构建和初始化.NET对象. XAML仅仅是一种使用.NET API的方式,把它与HTML.可伸缩向量图形(SVG)或其他特定领域的格式或语言作比较是完全错误的.XAML由一些规则(告诉解析器和编译器如何处 理XML)和一些关键字组成,但它自己没有任何有意义的元素.因此,如果在没有WPF这样的框架的基