如果我有2 Button
,A
和B
,是否可以创建Style
和Trigger
,以便在用户悬停时超过Button B
,会导致Button A
的{{1}}更改?我尝试过使用Style
和SourceName
,并且遇到编译错误。这是我正在愚弄的XAML - 我想在TargetName
被鼠标悬停时使Button A
的内容加粗:
Button B
答案 0 :(得分:0)
Trigger
,就其本质而言,用于更改触发器应用于的元素的属性,而不是其他不相关的元素。可能有一些黑客你可以实现这样的事情,但我不认为这是好的做法或适合WPF的意图。
您可以将 btnA 和 btnB 嵌入到单个用户控件中(然后可以访问UserControl.Triggers中的两者),但这可能没有逻辑意义为了你想做什么。这假设btnA和btnB总是属于一起。如果不是这样的话,你应该用老式的方式连接它,有几个事件和一些代码隐藏:
<StackPanel>
<Button Name="btnA" Content="A"/>
<Button Name="btnB" Content="B" MouseEnter="btnB_MouseEnter" MouseLeave="btnB_MouseLeave"/>
</StackPanel>
代码:
private void btnB_MouseEnter(object sender, MouseEventArgs e)
{
btnA.FontWeight = FontWeights.Bold;
}
private void btnB_MouseLeave(object sender, MouseEventArgs e)
{
btnA.FontWeight = FontWeights.Normal;
}