2

我正在尝试将一些数据绑定到 TextBlock。TextBlock 是显示一个滑块值,当滑块值发生变化时,我希望 TextBlock 文本将颜色更改为红色。

我的 XAML 是这样的:

<Grid Height="227">
    <TextBlock Margin="114,60,112,150" Name="textBlock1" Text="{Binding Path=DispVal}" Width="42" Grid.Column="1" HorizontalAlignment="Center" TextAlignment="Center" FontWeight="Bold">
        <TextBlock.Style>
            <Style TargetType="{x:Type TextBlock}"> 
                <Setter Property="Foreground" Value="Black"/>

                <Style.Triggers> 
                    <DataTrigger Binding="{Binding Path=IsChanged}" Value="true"> 
                        <Setter Property="TextBlock.Foreground" Value="Red" /> 
                    </DataTrigger> 
                    <DataTrigger Binding="{Binding Path=IsChanged}" Value="false"> 
                        <Setter Property="TextBlock.Foreground" Value="Black" /> 
                    </DataTrigger> 
                </Style.Triggers> 
            </Style> 
        </TextBlock.Style>            
    </TextBlock> 
</Grid>

我已经使用 DataContext 绑定了 TextBlock:

texBlock1.DataContext = m_slider;

当我的滑块更新处理程序触发时,我更新 m_slider 对象。

但是,我没有得到任何文本或颜色更改。

4

1 回答 1

0

您可以用文本框替换文本块,并通过应用以下属性使其外观和感觉相似

<Setter Property="IsReadOnly" Value="True"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>

然后,您可以使用 TextChanged 事件,以便在您的绑定更改文本时更新其样式

于 2013-01-17T16:24:43.963 回答