我正在尝试根据属性HasValidationError显示工具提示到堆栈面板。
<Style TargetType="StackPanel" x:Key="stackstyle">
<Style.Triggers>
<DataTrigger Binding="{Binding HasValidationError}" Value="True">
<Setter Property="ToolTip">
<Setter.Value>
<Binding Path="DisplayError"/>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
代码工作正常。但它在黄色背景下显示工具提示(正常工具提示)。我需要自定义它以更改和包含图像。为此,
<Style TargetType="StackPanel" x:Key="stackstyle">
<Style.Triggers>
<DataTrigger Binding="{Binding HasValidationError}" Value="True">
<Setter Property="ToolTip">
<Setter.Value>
<StackPanel>
<!-- Have to add image and other decorations here -->
<TextBlock Text = "{Binding DisplayError}"/>
</StackPanel>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
将StackPanel添加到时显示错误。请帮我解决。
答案 0 :(得分:4)
我不知道为什么会失败,但您可以通过将ToolTip作为资源来解决这个问题:
<StackPanel x:Key="ToolTipContents">
<!-- Have to add image and other decorations here -->
<TextBlock Text = "{Binding DisplayError}"/>
</StackPanel>
<Style TargetType="StackPanel" x:Key="stackstyle">
<Style.Triggers>
<DataTrigger Binding="{Binding HasValidationError}" Value="True">
<Setter Property="ToolTip" Value="{StaticResource ToolTipContents}"/>
</DataTrigger>
</Style.Triggers>
</Style>
或
<ToolTip x:Key="ToolTipContents">
<StackPanel>
<!-- Have to add image and other decorations here -->
<TextBlock Text = "{Binding DisplayError}"/>
</StackPanel>
</ToolTip>
<!-- etc -->
此外,您拥有的代码将按照.NET 4编写的方式工作,因此修复了该错误。