사소한 문제가 있습니다. 스타일을 쉽게 제어 할 수 있도록 스타일과 컨트롤 템플릿 외부에 많은 문체 항목을 넣고 싶습니다. 그래서 스크롤바의 반복 버튼에 대해서는이 모든 것을 작동 시키지만 IsPressed를 얻을 수 있습니다. 템플릿에서만 작동합니다.스크롤 막대의 WPF 반복 단추는 스타일이 아닌 템플릿에서 IsPressed 만 트리거합니다.
<ControlTemplate x:Key="ScrollBarButtonCT" TargetType="{x:Type RepeatButton}">
<Border
x:Name="borderRepeatButton"
Margin="1"
CornerRadius="2"
Background="{TemplateBinding Background}">
<Path x:Name="pathArrow"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{DynamicResource ThumbBrush}"
Data="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="true">
<Setter TargetName="borderRepeatButton" Property="Background" Value="{DynamicResource ThumbPressedBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
그리고 스타일은 내가 스타일에서 일을 IsPressed되지 수
<Style x:Key="ScrollBarButtonStyle" TargetType="{x:Type RepeatButton}">
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="Focusable" Value="false"/>
<Setter Property="IsTabStop" Value="false"/>
<Setter Property="Background" Value="{DynamicResource ScrollBarBGBrush}"/> <!-- borderRepeatButton -->
<Setter Property="OpacityMask" Value="{DynamicResource ThumbBrush}"/> <!-- pathArrow-->
<Setter Property="Template" Value="{StaticResource ScrollBarButtonCT}"/>
<Style.Triggers>
<!--<Trigger Property="IsPressed" Value="true"> .... this doesn't work coming from the style
<Setter Property="Background" Value="{DynamicResource ThumbPressedBrush}" />
</Trigger>-->
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{DynamicResource ScrollBarDisabledBGBrush}"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" Value="{DynamicResource ThumbHoverBrush}"/>
</Trigger>
</Style.Triggers>
</Style>
입니다 :
는 그래서 템플릿 (기본적으로)입니다. Snoop IsPressed를 살펴보면 컨트롤을 사용할 때 잘 처리됩니다. 내가 도대체 뭘 잘못하고있는 겁니까? 감사!
TargetType = "typeName"== TargetType = "{x : 유형 typename}" .net 3.5 또는 4에 대한 것입니까? – dex3703