2
WPF 용 스타일을 정의하고 있습니다 TabControl
TabItem
. 마우스 (왼쪽 버튼)를 누르고 TabItem
을 선택했지만 Trigger
을 찾을 수없는 경우 TabItem
에 약간의 "푸시 다운"효과를 표시하려고합니다.WPF TabItem 스타일이 마우스 왼쪽 버튼을 눌렀을 때
MultiTrigger
을 IsMouseLeftButtonDown
및 IsPressed
속성으로 정의하려고 시도했지만 어느 것도 인식되지 않습니다.
<Style TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Border Name="bd" BorderThickness="1,1,0,0">
<Grid>
<ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center"
ContentSource="Header"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseLeftButtonDown" Value="True" /> <!--NOT RECOGNIZED-->
<Condition Property="IsSelected" Value="False" />
</MultiTrigger.Conditions>
<Setter TargetName="bd" Property="Background" >
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Green" Offset="0"/>
<GradientStop Color="Yellow" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
어떻게 버튼을 마우스 왼쪽은
TabItem
아래로 눌렀을 때 행동으로 유도 할 수있는 Trigger
를 설정하는 방법?
편집은 내가하지만
<EventTrigger RoutedEvent="UIElement.PreviewMouseLeftButtonDown">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" To="Green" Duration="0:0:3" />
</Storyboard>
<BeginStoryboard/>
<EventTrigger/>
아래는이 어떻게 든이 방법으로 달성 할 수있는 모든 효과를 볼 수 없습니다 EventTrigger
을 시도
?
이것은 작동하지 않습니다. MouseAction을 듣고 싶다면'EventTrigger'를 사용해야합니다. 이벤트 트리거는 하나의 조건 만 수락합니다. 그러므로 당신의'IsSelected = False'는 작동하지 않을 것입니다. 해결 방법은'IsMouseLeftButtonDown' 대신'IsMouseOver'를 사용하는 것입니다. 호버 - 효과를 시뮬레이트합니다. – lokusking
호버 효과가 있기 때문에 IsMouseOver가 올바르지 않습니다. 이미 올바르게 구현되었습니다. – Nuts
EventTrigger에 대한 게시물을 편집했지만 작동하지 않습니다. – Nuts