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>
这样就完成自定义控件的第一步了即,显示一个方框。