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