Wpf 自定义控件(1)

摘要:
之所以创建新的wpf项目而不是新的类库,是因为wpf函数将自动导入wpf项目所需的基本类库。
1. 新建一个wpf工程,在工程下面新建
  一个文件夹themes,在themes下新建两个资源字典文件generic.xaml和PrettySeekBar.xaml
generic.xaml
 
<ResourceDictionary xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml">
    <ResourceDictionary.MergedDictionaries >
        <ResourceDictionary Source ="/PrettyControls;component/themes/PrettySeekBar.xaml" />
    </ResourceDictionary.MergedDictionaries >
</ResourceDictionary>
 
PrettySeekBar.xaml
<ResourceDictionary xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:Pretty ="clr-namespace:PrettyControls"
                    >
    <Style TargetType="{x :Type Pretty :PrettySeekBar}">
        <Setter Property ="Template">
            <Setter.Value>
                <ControlTemplate TargetType ="{x: Type Pretty: PrettySeekBar}">
                    <Grid Width ="50" Height="50" Background="Red">
                       
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style >
</ResourceDictionary>
 
2. 新建一个类PrettySeekBar
 
namespace PrettyControls
{
    public class PrettySeekBar :Control
    {
        #region Constructors
 
        static PrettySeekBar()
        {
 
            DefaultStyleKeyProperty.OverrideMetadata( typeof(PrettySeekBar ),new FrameworkPropertyMetadata (typeof( PrettySeekBar)));
 
        }
 
        #endregion
    }
}
 
 
3. 将wpf工程改为类库工程,并且删除 app.xaml 和 MainWindow.xaml以及对应的cs文件。
 
之所以新建一个wpf工程而不是直接新建类库共,是因为wpf功能会自动导入wpf项目需要的基本类库。
 
 
 4. 新建一个Test wpf工程,并且引用PrettyControls项目,然后添加如下:
 
 
< Window x : Class="Test.MainWindow"
        xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns :x ="http://schemas.microsoft.com/winfx/2006/xaml"
        Title ="MainWindow" Height ="350" Width="525"
        xmlns :Pretty ="clr-namespace:PrettyControls;assembly=PrettyControls"
        >
    <Grid >
        < Pretty: PrettySeekBar />
    </Grid >
</ Window>
 
这样就完成自定义控件的第一步了即,显示一个方框。
 
 
 

免责声明:文章转载自《Wpf 自定义控件(1)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇window10, java环境配置完后在cmd,输入java成功了,但为什么输入javac就失败了element 前端排序 与 后端排序下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C#探秘系列(九)WPF连接Mysql数据库

两个函数即可搞定: private void GetData() { MySqlConnection connection = new MySqlConnection(myConnectionString); connection.Open(); if (conn...

WPF ClickOnce应用程序IIS部署发布攻略

WPF程序非常适合公司内网使用,唯一缺点就是客户端要安装.net框架4.0。优势也很明显,在客户端运行的是一个WinForm程序,自动下载,可以充分利用客户机的性能,而且是以当前的Windows用户权限运行,避免了权限带来的问题。而我觉得最大的益处还是可以自动更新!这样就具备了CS程序功能强大速度快的优点,又有BS程序部署升级容易的优点。 本文要讨论的就是...

WPF学习笔记-行为

样式和资源字典能在一定范围上设置界面的属性效果,但是这些都是相对的是静态的,即使是动态的,也是先定义好的,无法直接按人的操作行为去设置效果。 这里来实现拖动功能,需要引用System.Windows.Interactivity.dll程序集 一,创建行为 1 using System; 2 using System.Collections.Gener...

WPF 自定义ColorDialog DropDownCustomColorPicker

今天分享一个 WPF 版的ColorDialog,该控件源自 这里,不过笔者已经该控件做了大量的修改工作,以适应自己的产品需求,闲话少说,先看看效果图: 1、DropDownCustomColorPicker 效果图 先看原项目的(喜欢这种方式的,请到 这里下载源码 ) 被笔者修改之后的效果图: 二、DropDownCustomColorPicker...

WPF 自定义属性

  做了一个自定义控件和一个自定义Grid,里面的元素可以随着绑定属性变化: 效果图(一定滑块): 关键代码: 1、自定义属性代码: public class MyGrid : Grid { public static readonly DependencyProperty ColumnCountProperty = De...

WPF 中图标路径问题

给 WPF 添加图标有两种方式,一是绝对路径方式,二是相对路径方式。第一种方式操作简单,只需将要添加的图标的路径赋给 Source 即可。但是,这种绝对路径方式存在一个严重的弊端,就是当工程文件移植到其它地方时,这些绝对路径就会失效,需要多次重复修改才行。而相对路径方式就解决了工程文件移植给图标路径带来的失效问题。 绝对路径很简单,举个例子,给应用添加一...