这是我的textblock。
<Image x:Name:imgAnother/>
<TextBlock>
this is my text block
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="TextDecorations" Value="None"/>
<Style.Triggers>
<Trigger Property="TextBlock.IsMouseOver" Value="True">
<Setter Property="Foreground" Value="RoyalBlue"/>
<!--I like to insert a code at here that changes another control's property...-->
</Trigger>
<Trigger Property="TextBlock.IsMouseOver" Value="False">
<Setter Property="Foreground" Value="#FF808080"/>
<!--..and this line too.-->
</Trigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
我喜欢做一个xaml代码,可以改变另一个控件的属性,如"imgAnother"。
我该怎么做呢?
您必须以某种方式聚合源和目标。
您可以创建包含超链接/文本块和图像的自定义控件。如果您有几个块在这样的示例中运行,那么这是首选的方式。
如果你不喜欢这个。您可以创建一个"临时"匿名控件,如下所示:
<ControlTemplate x:Key="myCtl" TargetType="ContentControl">
<StackPanel>
<Image x:Name="img"/>
<ContentPresenter x:Name="ctr" />
</StackPanel>
<ControlTemplate.Triggers>
<Trigger SourceName="ctr" Property="IsMouseOver" Value="True">
<Setter TargetName="ctr" Property="Foreground" Value="RoyalBlue"/>
<!--I like to insert a code at here that changes another control's property...-->
</Trigger>
<Trigger SourceName="ctr" Property="IsMouseOver" Value="False">
<Setter TargetName="ctr" Property="Foreground" Value="#FF808080"/>
<!--..and this line too.-->
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
上面的xaml将驻留在您的windows资源中。
注意:它更像是要跟随的曲目,而不是功能完整的代码片段!
在正文中,你可以这样引用控件:
<ContentControl Template="{StaticResource myCtl}" Content="this is my text block" />
希望能有所帮助。