如何为多个鼠标悬停事件创建单个样式?

liq*_*air 5 wpf xaml wpf-controls wpf-style

我有四个按钮和四个文本框,其中每个按钮都链接到一个文本块。当鼠标悬停在按钮上方时,我希望相应的文本块淡入(并在鼠标离开时淡出)。有很多这样的示例,它们显示了单个按钮和文本块,您可以在其中以文本块样式将数据触发器简单地绑定到按钮名称。

这是到目前为止我所能获得的(所有这些都是文本块样式的):

<DataTrigger Binding="{Binding ElementName=UpdateButton, Path=IsMouseOver}" Value="True">
    <DataTrigger.EnterActions>
         <BeginStoryboard>
              <Storyboard TargetProperty ="Opacity" Duration="00:00:01">
                   <DoubleAnimation From="0" To="1" Duration="00:00:01"/>
              </Storyboard>
         </BeginStoryboard>
    </DataTrigger.EnterActions>
    <DataTrigger.ExitActions>
         <BeginStoryboard>
              <Storyboard TargetProperty ="Opacity" Duration="00:00:01">
                   <DoubleAnimation From="1" To="0" Duration="00:00:01"/>
              </Storyboard>
         </BeginStoryboard>
    </DataTrigger.ExitActions>
</DataTrigger>
Run Code Online (Sandbox Code Playgroud)

截至目前,当我将鼠标悬停在“更新按钮”上时,将显示所有文本块,而不仅仅是与“更新按钮”相关联的文本块。

为了解决这个问题,我可以通过每个文本块的名称来创建样式,并绑定到适当的按钮,但这是大量的重复。我可能会使用“ BasedOn”来分隔按钮绑定,但随后我们仍在复制情节提要和诸如此类的所有代码。但是有人知道更好的方法吗?

似乎应该有一种方法可以使用单个通用绑定以单一样式创建所有这些内容,但是将特定的按钮链接到其文本块,因此该按钮仅触发故事板为其链接的文本块。有谁知道该怎么做,还是更好的方法?