回答編集履歴
1
見直しキャンペーン中
test
CHANGED
@@ -1,153 +1,77 @@
|
|
1
1
|
うまく説明できているか自信がないのですが、`Button`自体のプロパティと`Template`は直接は関連しません。
|
2
|
-
|
3
2
|
連動して見えるのは連動するように作っているからで、すべて無視することもできてしまいます。
|
4
|
-
|
5
|
-
|
6
3
|
|
7
4
|
現状`Content`と`ContentTemplate`だけが連動(`TemplateBinding`)している状態で、他は無視している形になっています。
|
8
5
|
|
9
|
-
|
10
|
-
|
11
6
|
> ①ボタンをマウスオーバーした時に背景色が変わらない
|
12
|
-
|
13
|
-
|
14
7
|
|
15
8
|
`Button`の`BorderBrush`・`Background`は変わっているが、それをだれも使っていない。
|
16
9
|
|
17
|
-
|
18
|
-
|
19
10
|
> ②ボタンのContentsで指定した文字が左上揃いになってしまう
|
20
|
-
|
21
|
-
|
22
11
|
|
23
12
|
`HorizontalContentAlignment`・`VerticalContentAlignment`を設定したが、それをだれも使っていない。
|
24
13
|
|
25
14
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
15
|
素直に書くとこんな感じでしょうか。
|
30
|
-
|
31
|
-
```x
|
16
|
+
```xml
|
32
|
-
|
33
17
|
<Application.Resources>
|
34
|
-
|
35
18
|
<!-- 色の指定 -->
|
36
|
-
|
37
19
|
<SolidColorBrush x:Key="Button.Static.Background" Color="#FFDDDDDD" />
|
38
|
-
|
39
20
|
<SolidColorBrush x:Key="Button.Static.Border" Color="#FF707070" />
|
40
|
-
|
41
21
|
<SolidColorBrush x:Key="Button.MouseOver.Background" Color="#FFBEE6FD" />
|
42
|
-
|
43
22
|
<SolidColorBrush x:Key="Button.MouseOver.Border" Color="#FF3C7FB1" />
|
44
|
-
|
45
23
|
<SolidColorBrush x:Key="Button.Pressed.Background" Color="#FFC4E5F6" />
|
46
|
-
|
47
24
|
<SolidColorBrush x:Key="Button.Pressed.Border" Color="#FF2C628B" />
|
48
|
-
|
49
25
|
<!-- ボタン用共通スタイル -->
|
50
|
-
|
51
26
|
<Style x:Key="CornerRadiusButton" TargetType="Button">
|
52
|
-
|
53
27
|
<!-- Contentsの左右方向align -->
|
54
|
-
|
55
28
|
<Setter Property="HorizontalContentAlignment" Value="Center" />
|
56
|
-
|
57
29
|
<!-- Contentsの上下方向align -->
|
58
|
-
|
59
30
|
<Setter Property="VerticalContentAlignment" Value="Center" />
|
60
|
-
|
61
31
|
<!-- 角丸と背景色の設定 -->
|
62
|
-
|
63
32
|
<Setter Property="Template">
|
64
|
-
|
65
33
|
<Setter.Value>
|
66
|
-
|
67
34
|
<ControlTemplate TargetType="Button">
|
68
|
-
|
69
35
|
<!-- 角丸と通常背景色の設定 -->
|
70
|
-
|
71
36
|
<Border
|
72
|
-
|
73
37
|
Background="{TemplateBinding Background}"
|
74
|
-
|
75
38
|
BorderBrush="{TemplateBinding BorderBrush}"
|
76
|
-
|
77
39
|
BorderThickness="1"
|
78
|
-
|
79
40
|
CornerRadius="6">
|
80
|
-
|
81
41
|
<ContentPresenter
|
82
|
-
|
83
42
|
x:Name="contentPresenter"
|
84
|
-
|
85
43
|
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
86
|
-
|
87
44
|
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
|
88
|
-
|
89
45
|
Content="{TemplateBinding Content}"
|
90
|
-
|
91
46
|
ContentTemplate="{TemplateBinding ContentTemplate}" />
|
92
|
-
|
93
47
|
</Border>
|
94
|
-
|
95
48
|
<!-- マウスオーバー時背景色の設定 -->
|
96
|
-
|
97
49
|
<ControlTemplate.Triggers>
|
98
|
-
|
99
50
|
<Trigger Property="IsMouseOver" Value="True">
|
100
|
-
|
101
51
|
<Setter Property="BorderBrush" Value="{StaticResource Button.MouseOver.Border}" />
|
102
|
-
|
103
52
|
<Setter Property="Background" Value="{StaticResource Button.MouseOver.Background}" />
|
104
|
-
|
105
53
|
</Trigger>
|
106
|
-
|
107
54
|
</ControlTemplate.Triggers>
|
108
|
-
|
109
55
|
</ControlTemplate>
|
110
|
-
|
111
56
|
</Setter.Value>
|
112
|
-
|
113
57
|
</Setter>
|
114
|
-
|
115
58
|
</Style>
|
116
|
-
|
117
59
|
</Application.Resources>
|
118
|
-
|
119
60
|
```
|
120
|
-
|
121
61
|
デザイナでコントロールを右クリックすると、「テンプレートの編集」ー「コピーして編集...」というメニューが出ます。
|
122
|
-
|
123
62
|
それで出力したスタイルをベースにいじると楽です^^
|
124
|
-
|
125
|
-
|
126
63
|
|
127
64
|
---
|
128
65
|
|
129
|
-
|
130
|
-
|
131
66
|
単に角丸にしたいだけならこれだけで十分です。
|
132
67
|
|
133
|
-
|
134
|
-
|
135
|
-
```x
|
68
|
+
```xml
|
136
|
-
|
137
69
|
<Style TargetType="Button" x:Key="CornerRadiusButton">
|
138
|
-
|
139
70
|
<Style.Resources>
|
140
|
-
|
141
71
|
<Style TargetType="Border">
|
142
|
-
|
143
72
|
<Setter Property="CornerRadius" Value="6" />
|
144
|
-
|
145
73
|
</Style>
|
146
|
-
|
147
74
|
</Style.Resources>
|
148
|
-
|
149
75
|
</Style>
|
150
|
-
|
151
76
|
```
|
152
|
-
|
153
77
|
[.net - How to create/make rounded corner buttons in WPF? - Stack Overflow](https://stackoverflow.com/questions/6745663/how-to-create-make-rounded-corner-buttons-in-wpf)
|