如何在Thumb的ControlTemplate中使用IsPressed属性?

时间:2019-03-13 00:57:27

标签: wpf

我想重写Thumb的ControlTemplate。

代码如下:

<ControlTemplate x:Key="123" TargetType="Thumb">
    <Border Name="B"></Border>
    <ControlTemplate.Triggers>
        <Trigger Property="IsPressed" Value="true">
            <Setter Property="Background" TargetName="B" Value="#575757"/>
        </Trigger>
        <Trigger Property="IsMouseOver" Value="true">
            <Setter Property="Background" TargetName="B" Value="Red"/>
        </Trigger>
    </ControlTemplate.Triggers>
</ControlTemplate>

但是,VS 2019 RC1报告错误: enter image description here
奇怪的是IsMouseOver可以,但是IsPressed报告错误。

我发现微软的官方模板如下:https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/thumb-styles-and-templates

但是官方模板现在使用的是VisualState,但未使用触发器。

我想知道如何通过触发器使用IsPressed属性。

也许您会问我为什么不使用VisualState?我在项目中编写了几个自定义控件,我不希望使用VisualState和触发器使用某些东西,这太混乱了。我只希望所有触发器。

谢谢。

1 个答案:

答案 0 :(得分:2)

Thumb不具有DocsIsPressed属性

您可以使用其他属性,例如IsDragging

  

获取Thumb控件是否具有逻辑焦点和鼠标捕获并按下鼠标左键。