博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF 使用依赖属性(DependencyProperty) 定义用户控件中的Image Source属性
阅读量:6489 次
发布时间:2019-06-24

本文共 1355 字,大约阅读时间需要 4 分钟。

原文:

如果你要自定义一个图片按钮控件,那么如何在主窗体绑定这个控件上图片的Source呢?

我向大家介绍一个用 依赖属性(DependencyProperty) 实现的方法。

关于依赖属性的介绍,请大家参考:

首先我们看用户控件中如何定义这个依赖属性:

1.新建一个用户控件,命名为ImageButton

2.在CS定义如下代码:

public partial class ImageButton : UserControl

    {
        public ImageSource imgSource
        {
            get { return (ImageSource)GetValue(ImageSourceProperty); }
            set { SetValue(ImageSourceProperty, value); }
        }
        public static readonly DependencyProperty ImageSourceProperty;           
        public ImageButton()
        {
            InitializeComponent();
        }
        static ImageButton()
        {
            var metadata = new FrameworkPropertyMetadata((ImageSource)null);
            ImageSourceProperty = DependencyProperty.RegisterAttached("imgSource", typeof(ImageSource), typeof(ImageButton), metadata);
        }
    }

以上代码,我们定义了控件中,Image 的Source属性。

3.在控件的xaml中,添加一个Image控件

完整代码如下:

<UserControl Name="UC" x:Class="TouchScreen12.Controls.ImageButton"

             xmlns=""
             xmlns:x=""
             xmlns:mc=""
             xmlns:d=""            
             mc:Ignorable="d"
             d:DesignHeight="167" d:DesignWidth="177">
    <Grid x:Name="myGrid" Margin="0">
        <Image x:Name="myImage" Source="{Binding ElementName=UC, Path=imgSource}" Width="Auto" Height="Auto" Stretch="Fill" Margin="0,0,0,0"/>   
    </Grid>
</UserControl>

好了,现在这个基础的图片按钮控件就初步完成了。

在工程的主窗体添加这个控件

<imgBut:ImageButton Height="{Binding bHeight}" HorizontalAlignment="Center" x:Name="image1" VerticalAlignment="Center" Width="{Binding bWidth}" Margin="0" imgSource="{Binding Image1Path}"/>

大家可以把图片的路径直接绑定给这个控件了!

转载地址:http://byouo.baihongyu.com/

你可能感兴趣的文章
微信小程序终于面向个人开发者开放了!!!
查看>>
《超越需求:敏捷思维模式下的分析》—第2章 2.1节简介
查看>>
对protostuff和java序列化的小测试
查看>>
《树莓派Python编程入门与实战》——1.3 哪些树莓派外设是必须的
查看>>
《编译与反编译技术实战 》一3.2 词法分析器的手工实现
查看>>
《计算机存储与外设》----1.5 虚拟存储器和存储器管理
查看>>
《 Python树莓派编程》——3.4 利用Python进行编程
查看>>
《“笨办法”学Python(第3版)》——习题5 更多的变量和打印
查看>>
从损坏的 Linux EFI 安装中恢复
查看>>
Git Rebase教程: 用Git Rebase让时光倒流
查看>>
面向机器学习的自然语言标注导读
查看>>
柏林纪行(上):整体感受
查看>>
《Python数据科学指南》——1.14 返回一个函数
查看>>
《Python数据分析》一1.7 学习手册页
查看>>
mosh:一个基于 SSH 用于连接远程 Unix/Linux 系统的工具
查看>>
《Python和Pygame游戏开发指南》——2.13 Rect对象
查看>>
Centos7 下建立 Docker 桥接网络
查看>>
《Hack与HHVM权威指南》——1.6 类型推理
查看>>
《CCNA学习指南:数据中心(640-911)》——导读
查看>>
《精通 ASP.NET MVC 5》----1.3 ASP.NET MVC的关键优点
查看>>