一、先用path画一下轮廓
1
2
3
4
5
6
7
|
<path stroke= "red" strokethickness= "1" margin= "10" strokedashcap= "round" >
<path.data>
<geometrygroup>
<pathgeometry figures= "m 4,40 a 16,13 0 1 1 10,45 l 3,48 z" />
</geometrygroup>
</path.data>
</path>
|
1
2
3
4
5
6
7
8
9
10
|
<path stroke= "red" strokethickness= "1" strokedashcap= "round" margin= "50" >
<path.data>
<geometrygroup>
<pathgeometry figures= "m 12,30 a 6,10 0 1 1 18,30 l 30,40 l 30,45 l 0,45 l 0,40z" />
<pathgeometry figures= "m 25,25 l 35,25" />
<pathgeometry figures= "m 28,30 l 35,30" />
<pathgeometry figures= "m 32,35 l 35,35" />
</geometrygroup>
</path.data>
</path>
|
路径图如下
二、将路径应用的样式里
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
<!--聊天按钮的样式-->
<style x:key= "chatstyle" targettype= "{x:type radiobutton}" >
<setter property= "focusvisualstyle" value= "{staticresource buttonfocusvisual}" />
<setter property= "background" value= "transparent" />
<setter property= "borderbrush" value= "transparent" />
<setter property= "borderthickness" value= "0" />
<setter property= "foreground" value= "{dynamicresource {x:static systemcolors.controltextbrushkey}}" />
<setter property= "horizontalcontentalignment" value= "center" />
<setter property= "verticalcontentalignment" value= "center" />
<setter property= "padding" value= "1" />
<setter property= "template" >
<setter.value>
<controltemplate targettype= "{x:type radiobutton}" >
<border>
<path x:name= "btnpath" strokethickness= "1" stroke= "gray" fill= "#ff3e3e40" >
<path.data>
<geometrygroup>
<pathgeometry figures= "m 4,40 a 16,13 0 1 1 10,45 l 3,48 z" />
</geometrygroup>
</path.data>
</path>
</border>
<controltemplate.triggers>
<trigger property= "ischecked" value= "true" >
<setter property= "fill" value= "#ff14d212" targetname= "btnpath" />
<setter property= "stroke" value= "#ff14d212" targetname= "btnpath" />
</trigger>
<trigger property= "ismouseover" value= "true" >
<setter property= "stroke" value= "white" targetname= "btnpath" />
</trigger>
<multitrigger>
<multitrigger.conditions>
<condition property= "ischecked" value= "true" />
<condition property= "ismouseover" value= "true" />
</multitrigger.conditions>
<multitrigger.setters>
<setter property= "stroke" value= "#ff14d212" targetname= "btnpath" />
</multitrigger.setters>
</multitrigger>
</controltemplate.triggers>
</controltemplate>
</setter.value>
</setter>
</style>
<!--通讯录的样式-->
<style x:key= "friendstyle" targettype= "{x:type radiobutton}" >
<setter property= "focusvisualstyle" value= "{staticresource buttonfocusvisual}" />
<setter property= "background" value= "transparent" />
<setter property= "borderbrush" value= "transparent" />
<setter property= "borderthickness" value= "0" />
<setter property= "foreground" value= "{dynamicresource {x:static systemcolors.controltextbrushkey}}" />
<setter property= "horizontalcontentalignment" value= "center" />
<setter property= "verticalcontentalignment" value= "center" />
<setter property= "padding" value= "1" />
<setter property= "template" >
<setter.value>
<controltemplate targettype= "{x:type radiobutton}" >
<border>
<path x:name= "btnpath" strokethickness= "1" stroke= "gray" fill= "#ff3e3e40" >
<path.data>
<geometrygroup>
<pathgeometry figures= "m 12,30 a 6,10 0 1 1 18,30 l 30,40 l 30,45 l 0,45 l 0,40z" />
<pathgeometry figures= "m 25,25 l 35,25" />
<pathgeometry figures= "m 28,30 l 35,30" />
<pathgeometry figures= "m 32,35 l 35,35" />
</geometrygroup>
</path.data>
</path>
</border>
<controltemplate.triggers>
<trigger property= "ischecked" value= "true" >
<setter property= "fill" value= "#ff14d212" targetname= "btnpath" />
<setter property= "stroke" value= "#ff14d212" targetname= "btnpath" />
</trigger>
<trigger property= "ismouseover" value= "true" >
<setter property= "stroke" value= "white" targetname= "btnpath" />
</trigger>
<multitrigger>
<multitrigger.conditions>
<condition property= "ischecked" value= "true" />
<condition property= "ismouseover" value= "true" />
</multitrigger.conditions>
<multitrigger.setters>
<setter property= "stroke" value= "#ff14d212" targetname= "btnpath" />
</multitrigger.setters>
</multitrigger>
</controltemplate.triggers>
</controltemplate>
</setter.value>
</setter>
</style>
|
看下效果图
注意要点有几个:
1、path原来必须要有填充,也就是说fill必须要有值,否则会认为是透明,点击不到。
2、一定要设置multitrigger,否则当button被选中的时候,鼠标划过,依然会变白色。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/ZXdeveloper/archive/2016/10/25/5997372.html