zoukankan      html  css  js  c++  java
  • Wpf 自定义控件(1)

    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>
     
    这样就完成自定义控件的第一步了即,显示一个方框。
     
     
     
  • 相关阅读:
    C# asp:Repeater DataSource List<T>
    MySQL DATE_FORMATE函数内置字符集的坑_转小叶子爹
    MySQL count(distinct) 逻辑的一个bug
    org.hibernate.PersistentObjectException: detached entity passed to persist:
    CGLIB Enhancement failed
    firstResult/maxResults specified on polymorphic query;
    Last packet sent to the server was 0 ms ago.
    MySql Error Code: 2006 – MySQl
    InnoDB: Error: auto-extending data file ./ibdata1 is of a different size
    mysql 大数据量分页处理
  • 原文地址:https://www.cnblogs.com/cody1988/p/3771783.html
Copyright © 2011-2022 走看看