WPF自定义控件,自定义控件中由多个button组成,如何给每个button添加不同事件处理?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF自定义控件,自定义控件中由多个button组成,如何给每个button添加不同事件处理?相关的知识,希望对你有一定的参考价值。

参考技术A 将Button的Command绑定到不同的方法就可以了

WPF自定义Button控件

原先的button只支持一个Content属性,现需要增加一个ImageSource的属性,让图片在button左边,,content在右边

这个要靠依赖属性来做啦!~
第一步,写个自己的button继承类,增加字段属性
public class MyButton:Button

public ImageSource ImgSource

get return (ImageSource)GetValue(SourceProperty);
set SetValue(SourceProperty, value);


public static readonly DependencyProperty SourceProperty = DependencyProperty.Register("ImgSource", typeof(ImageSource), typeof(MyButton), null);

第二步,用blend编辑button类的模板,把TargetType="Button"改成TargetType="local:MyButton"喔!~找到ContentPresenter所在行,用以下代码代替:
<StackPanel Orientation="Horizontal">
<Image Source="TemplateBinding ImgSource"/>
<ContentPresenter x:Name="contentPresenter" ContentTemplate="TemplateBinding ContentTemplate" Content="TemplateBinding Content" HorizontalAlignment="TemplateBinding HorizontalContentAlignment" Margin="TemplateBinding Padding" VerticalAlignment="TemplateBinding VerticalContentAlignment"/>
</StackPanel>
最后就可以直接在控件中设定啦!~
<local:MyButton Content="Button" Height="45" Width="120" Style="StaticResource ButtonStyle1" Padding="10,0,0,0" ImgSource="bandeng.jpg"/>
参考技术A Button外面加一个StackPanel
<StackPanel Orientation="Horizontal">
<Image></Image>
<Button></Button>
</StackPanel>
这种格式就可以了。

以上是关于WPF自定义控件,自定义控件中由多个button组成,如何给每个button添加不同事件处理?的主要内容,如果未能解决你的问题,请参考以下文章

WPF编程之自定义Button控件样式

[WPF自定义控件]从ContentControl开始入门自定义控件

WPF自定义button按钮控件

WPF自定义控件之带倒计时的按钮--Button

WPF 在控件中添加自定义属性

WPF 在资源文件中使用自定义控件报错