【发布时间】:2015-09-23 15:59:45
【问题描述】:
问题: 我在网格中有两个单独的对象:一个 TextBox 和一个 TextBlock 当 TextBox 的垂直滚动条可见时,我希望 TextBlock 可见。
更新:垂直滚动条的可见性应该设置为自动,所以它是我们想要触发的实际可见性(见下文)。
方法: TextBox 的模板似乎包含一个名为 PART_InnerGrid 的网格,该网格又包含一个名为 PART_ContentHost 的滚动查看器。此滚动查看器包含一个名为 ComputedVerticalScrollBarVisibility 的属性,该属性的类型为 Visibility。 我尝试在 TextBlock 上创建触发器,但无法构建正确的绑定路径。我该怎么做:
<TextBox x:Name="TB1" TextWrapping="Wrap" AcceptsReturn="True" MinHeight="40" VerticalScrollBarVisibility="Auto"/>
<TextBlock Text="VISIBLE" Grid.Row="1" VerticalAlignment="Bottom">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=TB1, Path=(PART_InnerGrid).(PART_ContentHost).ComputedVerticalScrollBarVisibility}">
<DataTrigger.Setters>
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger.Setters>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
【问题讨论】: