c# - 如何在鼠标悬停时创建带有 WPF 边框的淡出过渡效果?

标签 c# wpf border mouseevent

我正在尝试创建一个在悬停时显示/隐藏边框本身的 Border。期望的效果是在悬停时在内容周围显示边框,当鼠标离开该区域时,边框会淡出。我无法弄清楚“淡出”部分。

下面的代码片段使用样式 Trigger。它可以切换边框颜色。如何实现淡出?

<Border
    BorderThickness="1"
    >
    <Border.Style>
        <Style>
            <Style.Triggers>
                <Trigger
                    Property="Border.IsMouseOver"
                    Value="false">
                    <Setter
                        Property="Border.BorderBrush"
                        Value="Transparent" />
                </Trigger>
                <Trigger
                    Property="Border.IsMouseOver"
                    Value="true">
                    <Setter
                        Property="Border.BorderBrush"
                        Value="LightGray" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </Border.Style>

最佳答案

您可以尝试使用 ColorAnimation

类似于:

<Border.Style>
  <Style TargetType="{x:Type Border}">
    <Setter Property="BorderBrush"
            Value="Transparent" />
    <Style.Triggers>
      <Trigger Property="IsMouseOver"
                Value="True">
        <Trigger.EnterActions>
          <BeginStoryboard>
            <Storyboard>
              <ColorAnimation Duration="0:0:0.01"
                              Storyboard.TargetProperty="BorderBrush.Color"
                              To="LightGray" />
            </Storyboard>
          </BeginStoryboard>
        </Trigger.EnterActions>
        <Trigger.ExitActions>
          <BeginStoryboard>
            <Storyboard>
              <ColorAnimation Duration="0:0:0.6"
                              Storyboard.TargetProperty="BorderBrush.Color"
                              To="Transparent" />
            </Storyboard>
          </BeginStoryboard>
        </Trigger.ExitActions>
      </Trigger>
    </Style.Triggers>
  </Style>
</Border.Style>

关于c# - 如何在鼠标悬停时创建带有 WPF 边框的淡出过渡效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16426592/

相关文章:

c# - 以编程方式展开/折叠 Outlook 导航 Pane 中的文件夹

c# - WPF 标签上的外发光效果和旋转

c# - 用户控件中的 WPF 流向

wpf - 在 ScrollViewer 中对 WPF DataGrid 使用虚拟化

Python:无边框的列表框

css - 删除不在数据表上的所有面板网格上的所有边框

c# - 用数据库查询结果填充列表框

c# - 我如何解析这个 XML(没有得到 "Root element is missing"或 "Sequence contains no elements")?

c# - 使用 "OPENSSH"私钥文件在 C# 中的 SSH.NET 字符串中失败, "invalid private key file"

css - CSS中边框底部的曲线