首页 技术 正文
技术 2022年11月13日
0 收藏 491 点赞 4,617 浏览 22927 个字

这次通过最近做的小例子说明一下自定义Button控件和样式。

实现的效果为:

<img src="data:image/png;base64,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" alt="" />

在讲解之前先分析一下:

这上面为八个按钮,这是毫无疑问的。在每个按钮中又包含了一个图片和文本两个元素。虽然有这么多按钮,但他们的样式基本相同,除了按钮中的图片和文字内容。所以我们可以把相同的部分提取出来,把不同的内容进行传参来实现不同的效果。

继续分析,在按钮中包含的这两个元素,一个是图片元素,一个是文本元素。先说文本元素,文本元素直接可以通过Button.Content直接赋值。但Image控件的Source属性不能通过Button中任何一个属性给它赋值。所以想 如果Button有个像Image控件一样的Source属性,并通过这两个进行Binding,那么这两个元素就都可以通过Button自身的属性就可以直接赋值。分析结果:

①要先自定义一个MyButton类,继承自Button。 给MyButton注册一个依赖属性 ImgSourceProperty,类型为ImageSource。这个Image控件的Source属性基本一样。

/// <summary>
    /// 自定义Button控件
    /// </summary>
    public class MyButton:Button
    {
        //定义Imagesource依赖属性
       
        public static readonly DependencyProperty ImgSourceProperty = DependencyProperty.Register
            (“ImgSource”, typeof(ImageSource), typeof(MyButton), null);

public ImageSource ImgSource
        {
            get { return (ImageSource)GetValue(ImgSourceProperty); }
            set { SetValue(ImgSourceProperty, value); }
        }
    }

②定义一个通用样式,在这里定义的样式其实是修改了Button模板

<Application x:Class=”Test13.App”
             xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”
             xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”
             xmlns:local=”clr-namespace:Test13″    //要注意引用你自定义控件的命名控件
             StartupUri=”MainWindow.xaml”>
    <Application.Resources>
        <Style x:Key=”sysStatusButton”
               TargetType=”{x:Type local:MyButton}”>
            <Style.Setters>
                <Setter Property=”Template”>
                    <Setter.Value>
                        <ControlTemplate TargetType=”{x:Type local:MyButton}”>
                            <Border x:Name=”border”
                                    BorderBrush=”{TemplateBinding Control.BorderBrush}”
                                    BorderThickness=”0″
                                    Background=”#2d548e”
                                    CornerRadius=”5,5,5,5″>
                                <StackPanel  Orientation=”Horizontal”>
                                    <Image VerticalAlignment=”Center”
                                           Width=”27″
                                           Height=”27″
                                           Margin=”5,0,0,0″
                                           Source=”{TemplateBinding ImgSource}”></Image>  //这里把模板中Image控件的source属性Binding到自定义控件的ImgSource属性上。
                                    <TextBlock VerticalAlignment=”Bottom”
                                               x:Name=”textBlock”
                                               Margin=”5,0,0,7″
                                               FontSize=”12″
                                               Foreground=” White”
                                               Text=”{TemplateBinding Content}”></TextBlock>  //这里的文本控件直接绑定的是Button的Content内容。
                                </StackPanel>
                            </Border>
                            <ControlTemplate.Triggers>
                                <Trigger Property=”IsKeyboardFocused” Value=”true”>
                                    <Setter TargetName=”border” Property=”Border.Background” Value=”#FF9900″ />
                                    <Setter TargetName=”textBlock” Property=”TextBlock.Foreground” Value=”black” />
                            </Trigger>
                        </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style.Setters>
          </Style>
    </Application.Resources>
</Application>

③接下来就是在XAML中声明控件,当给自定义控件的这两个属性赋值时,在上面的样式中就会给Image控件和TextBlock赋值。

<local:MyButton Content=”系统状态监控” Height=”40″ Width=”132″
                            Style=”{StaticResource sysStatusButton}”
                            ImgSource=”/Test13;component/Images/2.png”
                            Click=”MyButton_Click” />
<local:MyButton Content=”设备监控列表”
                            Height=”40″
                            Width=”132″
                            Margin=”5,0,5,0″
                            Style=”{StaticResource sysStatusButton}”
                            ImgSource=”/Test13;component/Images/3.png”
                            Click=”MyButton_Click_1″ />

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,085
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,560
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,409
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,182
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,819
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,902