teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

修正しました

2016/12/27 02:22

投稿

piero
piero

スコア17

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,46 @@
1
1
  buttonコントロールを継承してToggleButtonコントロールを作成することは出来ますか?
2
2
  BasedOn={StaticResource ButtonBase}でToggleButtonを実装する方法がわかりません。
3
- ButtonBaseは自作です。
3
+ ButtonBaseは自作です。
4
+
5
+ 以下追記内容
6
+
7
+ <Style x:Key="ButtonBase" TargetType="{x:Type Button}">
8
+ <Setter Property="Background" Value="{StaticResource ButtonColor}"/>
9
+ <Setter Property="Foreground" Value="#232323"/>
10
+ <Setter Property="BorderBrush" Value="#9C9C9C"/>
11
+ <Setter Property="FontSize" Value="20"/>
12
+ <Setter Property="FontFamily" Value="Meiryo-UI"/>
13
+ <Setter Property="BorderThickness" Value="1"/>
14
+ <Setter Property="HorizontalContentAlignment" Value="Center"/>
15
+ <Setter Property="VerticalContentAlignment" Value="Center"/>
16
+ <Setter Property="Width" Value="136" />
17
+ <Setter Property="Height" Value="48" />
18
+ <Setter Property="Effect" Value="{StaticResource ButtonShadow}" />
19
+ <Setter Property="Template">
20
+ <Setter.Value>
21
+ <ControlTemplate TargetType="{x:Type Button}">
22
+ <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Effect="{TemplateBinding Effect }" CornerRadius="4">
23
+ <ContentPresenter x:Name="contentPresenter" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
24
+ </Border>
25
+ <ControlTemplate.Triggers>
26
+ <Trigger Property="IsMouseOver" Value="true">
27
+ <Setter Property="Background" TargetName="border" Value="{StaticResource ButtonHoverColor}" />
28
+ </Trigger>
29
+ <Trigger Property="IsPressed" Value="true">
30
+ <Setter Property="Background" TargetName="border" Value="{StaticResource ButtonPressColor}" />
31
+ <Setter Property="BorderBrush" TargetName="border" Value="#707070"/>
32
+ <Setter Property="Effect" Value="{StaticResource ButtonNoShadow}" />
33
+ </Trigger>
34
+ <Trigger Property="IsEnabled" Value="false">
35
+ <Setter Property="Background" TargetName="border" Value="{StaticResource ButtonDisableColor}"/>
36
+ </Trigger>
37
+ </ControlTemplate.Triggers>
38
+ </ControlTemplate>
39
+ </Setter.Value>
40
+ </Setter>
41
+ </Style>
42
+ <Style x:Key="ButtonToggle" TargetType="{x:Type ToggleButton}" BasedOn={StaticResource ButtonBase} >
43
+ <Setter Property="Background" Value="{StaticResource ButtonColor}"/>....
44
+
45
+ やりたいことは、ONOFFを切り替えるトグルボタンの実装をテンプレートを編集したボタンと全く同じデザインでCheckedの挙動を実装したいです。
46
+ しかし、BasedOnでエラーが出るため継承できないです。