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添加不同事件处理?的主要内容,如果未能解决你的问题,请参考以下文章